home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / lamstex / inputs / lamstbl.tex < prev    next >
Text File  |  1991-09-06  |  101KB  |  2,938 lines

  1. % LAMSTBL.TEX   VERSION 2.0
  2. % COPYRIGHT (C) 1989, 1990, 1991 BY THE TEXPLORATORS CORPORATION
  3. % ALL RIGHTS RESERVED
  4.  
  5. % ABSOLUTELY NO CHANGES SHOULD BE MADE TO THIS FILE.
  6.  
  7. \catcode`\@=11
  8. \ifx\amstexloaded@\relax
  9.  \W@{! lamstbls.tex cannot be used with amstex.tex}\let\relax\end\fi\relax
  10. \toksdef\toks@@=2
  11. \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
  12.  \ch@ck#1#4#2\allocationnumber=\count1#1
  13.  \global#3#5=\allocationnumber}
  14. \newcount\count@@
  15. \newcount\count@@@
  16. \def\FN@{\futurelet\next}
  17. \def\DN@{\def\next@}
  18. \def\DNii@{\def\nextii@}
  19. \def\RIfM@{\relax\ifmmode}
  20. \def\RIfMIfI@{\relax\ifmmode\ifinner}
  21. \def\setboxz@h{\setbox\z@\hbox}
  22. \def\wdz@{\wd\z@}
  23. \def\boxz@{\box\z@}
  24. \def\height{height}
  25. \def\width{width}
  26. \def\depth{depth}
  27. \def\iterate{\body\expandafter\iterate\else\fi}
  28. \newlinechar=`\^^J
  29. \newhelp\defaulthelp@{Sorry, I already gave what help I could...^^J
  30. Maybe you should try asking a human?^^J
  31. An error might have occurred before I noticed any problems.^^J
  32. ``If all else fails, read the instructions.''}
  33. \def\eat@#1{}
  34. \def\space@.{\futurelet\space@\relax}
  35. \space@. %
  36. \newhelp\athelp@
  37. {Only certain combinations beginning with @ make sense to me.^^J
  38. Perhaps you wanted \string\@\space for a printed @?^^J
  39. I've ignored the character or group after @.}
  40. \def\atdef@#1{\expandafter\def\csname\string#1@at\endcsname}
  41. \newhelp\defahelp@{If you typed \string\define\space cs instead of
  42. \string\define\string\cs\space^^J
  43. I've substituted an inaccessible control sequence so that your^^J
  44. definition will be completed without mixing me up too badly.^^J
  45. If you typed \string\define{\string\cs} the inaccessible control sequence^^J
  46. was defined to be \string\cs, and the rest of your^^J
  47. definition appears as input.}
  48. \newhelp\defbhelp@{I've ignored your definition, because it might^^J
  49. conflict with other uses that are important to me.}
  50. \def\define@{\FN@\define@@}
  51. \def\err@#1{\errmessage{LamS-TeX error: #1}}
  52. \def\define@@{\ifcat\noexpand\next\relax
  53.  \expandafter\define@@@\else\errhelp\defahelp@
  54.  \err@{\noexpand\define must be followed by a control
  55.  sequence}\expandafter\def\expandafter\nextii@\fi}
  56. \def\undefined@@@@@@@@@@{}
  57. \def\preloaded@@@@@@@@@@{}
  58. \def\next@@@@@@@@@@{}
  59. \def\define@@@#1{\ifx#1\relax\errhelp\defbhelp@
  60.  \err@{\noexpand#1is already defined}\DN@{\DNii@}\else
  61.  \expandafter\ifx\csname\expandafter\eat@\string
  62.  #1@@@@@@@@@@\endcsname\undefined@@@@@@@@@@\errhelp\defbhelp@
  63.  \err@{\noexpand#1can't be defined}\DN@{\DNii@}\else
  64.  \expandafter\ifx\csname\expandafter\eat@\string#1\endcsname\relax
  65.  \global\let#1\undefined\DN@{\def#1}\else\errhelp\defbhelp@
  66.  \err@{\noexpand#1is already defined}\DN@{\DNii@}\fi
  67.  \fi\fi\next@}
  68. \def\undefine#1{\let#1\undefined}
  69. \def\WT@#1{\expandafter\let\csname\expandafter\eat@\string#1 \endcsname=#1%
  70.  \xdef\next@{\def\noexpand#1{\noexpand\NX@\expandafter\noexpand
  71.   \csname\expandafter\eat@\string#1 \endcsname}}%
  72.  \next@}
  73. \def\predefine#1{\def\tdf@{#1}\afterassignment\wtdef@\let\tdf@@}
  74. \def\redefine#1{\def\tdf@{#1}\afterassignment\wtdef@\def\tdf@@}
  75. \def\define#1{\define@#1{}\redefine#1}
  76. \def\wtdef@{\expandafter\let\tdf@\tdf@@\expandafter\WT@\tdf@}
  77. \def\tie{\unskip\nobreak\ }
  78. \let\graveaccent\`
  79. \let\acuteaccent\'
  80. \let\tildeaccent\~
  81. \let\hataccent\^
  82. \let\underscore\_
  83. \let\B\=
  84. \let\D\.
  85. \let\ic@\/
  86. \def\/{\unskip\ic@}
  87. \def\textfonti{\the\textfont\@ne}
  88. \def\t#1#2{{\edef\next@{\the\font}\textfonti\accent"7F \next@#1#2}}
  89. \def~{\unskip\nobreak\ \ignorespaces}
  90. \def\.{.\spacefactor\@m}
  91. \atdef@;{\leavevmode\null;}
  92. \atdef@:{\leavevmode\null:}
  93. \atdef@?{\leavevmode\null?}
  94. \def\@{\char64 }
  95. \atdef@-{\leavevmode
  96.  \DN@{\ifx\next-\DN@-{\FN@\nextii@}\else
  97.   \DN@{\leavevmode\hbox{-}}\fi\next@}%
  98.  \DNii@{\ifx\next-\DN@-{\leavevmode\hbox{---}}\else
  99.   \DN@{\leavevmode\hbox{--}}\fi\next@}%
  100.  \FN@\next@}
  101. \def\srdr@{\kern.16667em}
  102. \def\drsr@{\kern.02778em}
  103. \def\sldl@{\kern.02778em}
  104. \def\dlsl@{\kern.16667em}
  105. \def\textfontii{\the\textfont\tw@}
  106. \def\lbrace@{\delimiter"4266308 }
  107. \def\rbrace@{\delimiter"5267309 }
  108. \def\{{\RIfM@\lbrace@\else{\textfontii f}\spacefactor\@m\fi}
  109. \def\}{\RIfM@\rbrace@\else
  110.  \let\@sf\empty\ifhmode\edef\@sf{\spacefactor\the\spacefactor}\fi
  111.  {\textfontii g}\@sf\relax\fi}
  112. \let\lbrace\{
  113. \let\rbrace\}
  114. \def\AmSTeX{{\textfontii A}\kern-.1667em\lower.5ex\hbox
  115.  {\textfontii M}\kern-.125em{\textfontii S}-\TeX}
  116. \def\vmodeerr@#1{\Err@{\noexpand#1not allowed between paragraphs}}
  117. \def\mathmodeerr@#1{\Err@{\noexpand#1not allowed in math mode}}
  118. \def\slash{\unskip/\penalty\exhyphenpenalty}
  119. \newskip\saveskip@
  120. \def\dmatherr@#1{\Err@{\noexpand#1not allowed in display math mode}}
  121. \def\nondmatherr@#1{\Err@{\noexpand#1not allowed in non-display math
  122.  mode}}
  123. \def\onlydmatherr@#1{\Err@{\noexpand#1allowed only in display math mode}}
  124. \def\nonmatherr@#1{\Err@{\noexpand#1allowed only in math mode}}
  125. \define\mathbreak{\RIfMIfI@\break\else
  126.  \dmatherr@\mathbreak\fi\else\nonmatherr@\mathbreak\fi}
  127. \define\nomathbreak{\RIfMIfI@\nobreak\else
  128.  \dmatherr@\nomathbreak\fi\else\nonmatherr@\nomathbreak\fi}
  129. \define\allowmathbreak{\RIfMIfI@\allowbreak\else
  130.  \dmatherr@\allowmathbreak\fi\else\nonmatherr@\allowmathbreak\fi}
  131. \def\nonvmodeerr@#1{\Err@{\noexpand#1not allowed within a paragraph
  132.  or in math}}
  133. \def\vnonvmode@#1#2{\DNii@{\ifx\next\par\DN@{#1}\else
  134.  \DN@{#2}\fi\next@}%
  135.  \ifvmode\DN@{#1}\else
  136.  \DN@{\FN@\nextii@}\fi\next@}
  137. \def\smallpagebreak{\vnonvmode@\smallbreak{\nonvmodeerr@\smallpagebreak}}
  138. \def\medpagebreak{\vnonvmode@\medbreak{\nonvmodeerr@\medpagebreak}}
  139. \def\bigpagebreak{\vnonvmode@\bigbreak{\nonvmodeerr@\bigpagebreak}}
  140. \def\NoBlackBoxes{\global\overfullrule\z@}
  141. \def\BlackBoxes{\global\overfullrule5\p@}
  142. \def\Invalid@#1{\def#1{\Err@{\Invalid@@\string#1}}}
  143. \def\Invalid@@{Invalid use of }
  144. \def\newcodes@{\catcode`\\=12 \catcode`\{=12 \catcode`\}=12 \catcode`\#=12
  145.  \catcode`\%=12\relax}
  146. \def\oldcodes@{\catcode`\\=0 \catcode`\{=1 \catcode`\}=2 \catcode`\#=6
  147.  \catcode`\%=14\relax}
  148. \def\comment{\newcodes@\endlinechar=10 \comment@}
  149. {\lccode`\0=`\\
  150. \lowercase{\gdef\comment@#1^^J{\comment@@#10endcomment\comment@@@}%
  151. \gdef\comment@@#10endcomment{\FN@\comment@@@}%
  152. \gdef\comment@@@#1\comment@@@{\ifx\next\comment@@@\let\next@\comment@
  153.  \else\def\next@{\oldcodes@\endlinechar=`\^^M\relax}%
  154.  \fi\next@}}}
  155. \def\pr@m@s{\ifx'\next\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@}
  156. \def\prime{{\null\prime@\null}}
  157. \mathchardef\prime@="0230
  158. \let\dsize\displaystyle
  159. \let\tsize\textstyle
  160. \let\ssize\scriptstyle
  161. \let\sssize\scriptscriptstyle
  162. \def\,{\RIfM@\mskip\thinmuskip\relax\else\kern.16667em\fi}
  163. \def\!{\RIfM@\mskip-\thinmuskip\relax\else\kern-.16667em\fi}
  164. \let\thinspace\,
  165. \let\negthinspace\!
  166. \def\medspace{\RIfM@\mskip\medmuskip\relax\else\kern.222222em\fi}
  167. \def\negmedspace{\RIfM@\mskip-\medmuskip\relax\else\kern-.222222em\fi}
  168. \def\thickspace{\RIfM@\mskip\thickmuskip\relax\else\kern.27777em\fi}
  169. \let\;\thickspace
  170. \def\negthickspace{\RIfM@\mskip-\thickmuskip\relax\else
  171.  \kern-.27777em\fi}
  172. \atdef@,{\RIfM@\mskip.1\thinmuskip\else\leavevmode\null,\fi}
  173. \atdef@!{\RIfM@\mskip-.1\thinmuskip\else\leavevmode\null!\fi}
  174. \atdef@.{\leavevmode.\spacefactor3000 }
  175. \def\and{\DOTSB\;\mathchar"3026 \;}
  176. \def\implies{\DOTSB\;\Longrightarrow\;}
  177. \def\impliedby{\DOTSB\;\Longleftarrow\;}
  178. \def\frac#1#2{{#1\over#2}}
  179. \def\dfrac#1#2{{\displaystyle{#1\over#2}}}
  180. \def\tfrac#1#2{{\textstyle{#1\over#2}}}
  181. \newdimen\ex@
  182. \ex@.2326ex
  183. \Invalid@\thickness
  184. \def\thickfrac{\DN@{\ifx\next\thickness\let\next@\nextii@\else
  185.  \DN@{\nextii@\thickness1}\fi\next@}%
  186.  \DNii@\thickness##1##2##3{{##2\above##1\ex@##3}}%
  187.  \FN@\next@}
  188. \def\fracwithdelims#1#2#3#4{{#3\overwithdelims#1#2#4}}
  189. \def\thickfracwithdelims#1#2{\def\ldelim@{#1}\def\rdelim@{#2}%
  190.  \DN@{\ifx\next\thickness\let\next@\nextii@\else
  191.  \DN@{\nextii@\thickness1}\fi\next@}%
  192.  \DNii@\thickness##1##2##3{{##2\abovewithdelims
  193.  \ldelim@\rdelim@##1\ex@##3}}%
  194.  \FN@\next@}
  195. \def\binom#1#2{{#1\choose#2}}
  196. \def\dbinom#1#2{{\displaystyle{#1\choose#2}}}
  197. \def\tbinom#1#2{{\textstyle{#1\choose#2}}}
  198. \def\:{\nobreak\hskip.1111em\mathpunct{}\nonscript\mkern-\thinmuskip{:}\hskip
  199.  .3333emplus.0555em\relax}
  200. \def\snug{\unskip\kern-\mathsurround}
  201. \define\topsmash{\top@true\bot@false\smash@}
  202. \define\botsmash{\top@false\bot@true\smash@}
  203. \newif\iftop@
  204. \newif\ifbot@
  205. \undefine\smash
  206. \define\smash{\top@true\bot@true\smash@}
  207. \def\smash@{\RIfM@\expandafter\mathpalette\expandafter\mathsm@sh\else
  208.  \expandafter\makesm@sh\fi}
  209. \def\finsm@sh{\iftop@\ht\z@\z@\fi\ifbot@\dp\z@\z@\fi\leavevmode\boxz@}
  210. \def\LimitsOnSums{\global\let\slimits@\displaylimits}
  211. \def\NoLimitsOnSums{\global\let\slimits@\nolimits}
  212. \LimitsOnSums
  213. \mathchardef\coprod@="1360       \def\coprod{\DOTSB\coprod@\slimits@}
  214. \mathchardef\bigvee@="1357       \def\bigvee{\DOTSB\bigvee@\slimits@}
  215. \mathchardef\bigwedge@="1356     \def\bigwedge{\DOTSB\bigwedge@\slimits@}
  216. \mathchardef\biguplus@="1355     \def\biguplus{\DOTSB\biguplus@\slimits@}
  217. \mathchardef\bigcap@="1354       \def\bigcap{\DOTSB\bigcap@\slimits@}
  218. \mathchardef\bigcup@="1353       \def\bigcup{\DOTSB\bigcup@\slimits@}
  219. \mathchardef\prod@="1351         \def\prod{\DOTSB\prod@\slimits@}
  220. \mathchardef\sum@="1350          \def\sum{\DOTSB\sum@\slimits@}
  221. \mathchardef\bigotimes@="134E    \def\bigotimes{\DOTSB\bigotimes@\slimits@}
  222. \mathchardef\bigoplus@="134C     \def\bigoplus{\DOTSB\bigoplus@\slimits@}
  223. \mathchardef\bigodot@="134A      \def\bigodot{\DOTSB\bigodot@\slimits@}
  224. \mathchardef\bigsqcup@="1346     \def\bigsqcup{\DOTSB\bigsqcup@\slimits@}
  225. \def\LimitsOnInts{\global\let\ilimits@\displaylimits}
  226. \def\NoLimitsOnInts{\global\let\ilimits@\nolimits}
  227. \NoLimitsOnInts
  228. \def\int{\DOTSI\intop\ilimits@}
  229. \def\oint{\DOTSI\ointop\ilimits@}
  230. \def\intic@{\mathchoice{\hskip.5em}{\hskip.4em}{\hskip.4em}{\hskip.4em}}
  231. \def\negintic@{\mathchoice
  232.  {\hskip-.5em}{\hskip-.4em}{\hskip-.4em}{\hskip-.4em}}
  233. \def\intkern@{\mathchoice{\!\!\!}{\!\!}{\!\!}{\!\!}}
  234. \def\intdots@{\mathchoice{\plaincdots@}
  235.  {{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}
  236.  {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}
  237.  {{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}
  238. \newcount\intno@
  239. \def\iint{\DOTSI\intno@\tw@\FN@\ints@}
  240. \def\iiint{\DOTSI\intno@\thr@@\FN@\ints@}
  241. \def\iiiint{\DOTSI\intno@4 \FN@\ints@}
  242. \def\idotsint{\DOTSI\intno@\z@\FN@\ints@}
  243. \def\ints@{\findlimits@\ints@@}
  244. \newif\iflimtoken@
  245. \newif\iflimits@
  246. \def\findlimits@{\limtoken@true\ifx\next\limits\limits@true
  247.  \else\ifx\next\nolimits\limits@false\else
  248.  \limtoken@false\ifx\ilimits@\nolimits\limits@false\else
  249.  \ifinner\limits@false\else\limits@true\fi\fi\fi\fi}
  250. \def\multint@{\int\ifnum\intno@=\z@\intdots@
  251.  \else\intkern@\fi
  252.  \ifnum\intno@>\tw@\int\intkern@\fi
  253.  \ifnum\intno@>\thr@@\int\intkern@\fi
  254.  \int}
  255. \def\multintlimits@{\intop\ifnum\intno@=\z@\intdots@\else\intkern@\fi
  256.  \ifnum\intno@>\tw@\intop\intkern@\fi
  257.  \ifnum\intno@>\thr@@\intop\intkern@\fi\intop}
  258. \def\ints@@{\iflimtoken@
  259.  \def\ints@@@{\iflimits@\negintic@\mathop{\intic@\multintlimits@}\limits
  260.   \else\multint@\nolimits\fi
  261.   \eat@}
  262.  \else
  263.  \def\ints@@@{\iflimits@\negintic@
  264.   \mathop{\intic@\multintlimits@}\limits\else
  265.   \multint@\nolimits\fi}\fi\ints@@@}
  266. \def\LimitsOnNames{\global\let\nlimits@\displaylimits}
  267. \def\NoLimitsOnNames{\global\let\nlimits@\nolimits@}
  268. \LimitsOnNames
  269. \def\nolimits@{\DN@{\ifx\next\limits\DN@\limits{\nolimits}\else
  270.   \let\next@\nolimits\fi\next@}%
  271.  \FN@\next@}
  272. \def\newmcodes@{\mathcode39="0027 \mathcode42="002A \mathcode46="613A
  273.  \mathcode45="002D \mathcode47="002F \mathcode58="603A }
  274. \def\operatorname#1{\mathop{\newmcodes@\kern\z@\fam\z@#1}\nolimits@}
  275. \def\operatornamewithlimits#1{\mathop{\newmcodes@\kern\z@\fam\z@#1}\nlimits@}
  276. \def\qopname@#1{\mathop{\fam\z@#1}\nolimits@}
  277. \def\qopnamewl@#1{\mathop{\fam\z@#1}\nlimits@}
  278. \def\arccos{\qopname@{arccos}}
  279. \def\arcsin{\qopname@{arcsin}}
  280. \def\arctan{\qopname@{arctan}}
  281. \def\arg{\qopname@{arg}}
  282. \def\cos{\qopname@{cos}}
  283. \def\cosh{\qopname@{cosh}}
  284. \def\cot{\qopname@{cot}}
  285. \def\coth{\qopname@{coth}}
  286. \def\csc{\qopname@{csc}}
  287. \def\deg{\qopname@{deg}}
  288. \def\det{\qopnamewl@{det}}
  289. \def\dim{\qopname@{dim}}
  290. \def\exp{\qopname@{exp}}
  291. \def\gcd{\qopnamewl@{gcd}}
  292. \def\hom{\qopname@{hom}}
  293. \def\inf{\qopnamewl@{inf}}
  294. \def\injlim{\qopnamewl@{inj\,lim}}
  295. \def\ker{\qopname@{ker}}
  296. \def\lg{\qopname@{lg}}
  297. \def\lim{\qopnamewl@{lim}}
  298. \def\liminf{\qopnamewl@{lim\,inf}}
  299. \def\limsup{\qopnamewl@{lim\,sup}}
  300. \def\ln{\qopname@{ln}}
  301. \def\log{\qopname@{log}}
  302. \def\max{\qopnamewl@{max}}
  303. \def\min{\qopnamewl@{min}}
  304. \def\Pr{\qopnamewl@{Pr}}
  305. \def\projlim{\qopnamewl@{proj\,lim}}
  306. \def\sec{\qopname@{sec}}
  307. \def\sin{\qopname@{sin}}
  308. \def\sinh{\qopname@{sinh}}
  309. \def\sup{\qopnamewl@{sup}}
  310. \def\tan{\qopname@{tan}}
  311. \def\tanh{\qopname@{tanh}}
  312. \define\varinjlim{\mathop{\vtop{\ialign{##\crcr
  313.  \hfil\rm lim\hfil\crcr\noalign{\nointerlineskip}\rightarrowfill\crcr
  314.  \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
  315. \define\varprojlim{\mathop{\vtop{\ialign{##\crcr
  316.  \hfil\rm lim\hfil\crcr\noalign{\nointerlineskip}\leftarrowfill\crcr
  317.  \noalign{\nointerlineskip\kern-\ex@}\crcr}}}}
  318. \def\varliminf{\mathop{\underline{\vrule\height\z@\depth.2ex\width\z@
  319.  \hbox{\rm lim}}}}
  320. \def\varlimsup{\mathop{\overline{\hbox{\rm lim}}}}
  321. \newdimen\buffer@
  322. \buffer@\fontdimen13 \tenex
  323. \newdimen\buffer
  324. \buffer\buffer@
  325. \def\ChangeBuffer#1{\fontdimen13 \tenex#1\relax
  326.  \global\buffer\fontdimen13 \tenex}
  327. \def\ResetBuffer{\fontdimen13 \tenex\buffer@\global\buffer\buffer@}
  328. \def\shave#1{\mathop{\hbox{$\m@th\fontdimen13 \tenex\z@
  329.  \displaystyle{#1}$}}\fontdimen13 \tenex\buffer}
  330. \def\topshave#1{\mathop{\topsmash{\displaystyle{#1}}\vphantom{\shave{#1}}}}
  331. \def\botshave#1{\mathop{\botsmash{\displaystyle{#1}}\vphantom{\shave{#1}}}}
  332. \Invalid@\\
  333. \def\Let@{\relax\iffalse{\fi\let\\\cr\iffalse}\fi}
  334. \Invalid@\vspace
  335. \def\vspace@{\def\vspace##1{\crcr\noalign{\vskip##1\relax}}}
  336. \def\multilimits@{\bgroup\vspace@\Let@
  337.  \baselineskip\fontdimen10 \scriptfont\tw@
  338.  \advance\baselineskip\fontdimen12 \scriptfont\tw@
  339.  \lineskip\thr@@\fontdimen8 \scriptfont\thr@@
  340.  \lineskiplimit\lineskip
  341.  \vbox\bgroup\ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil\crcr}
  342. \def\Sb{_\multilimits@}
  343. \def\endSb{\crcr\egroup\egroup\egroup}
  344. \def\Sp{^\multilimits@}
  345. \let\endSp\endSb
  346. \def\spreadlines#1{\RIfMIfI@\onlydmatherr@\spreadlines\else
  347.  \openup#1\relax\fi\else\onlydmatherr@\spreadlines\fi}
  348. \def\Mathstrut@{\copy\Mathstrutbox@}
  349. \newbox\Mathstrutbox@
  350. \setbox\Mathstrutbox@\null
  351. \setbox\z@\hbox{$\m@th($}
  352. \ht\Mathstrutbox@\ht\z@
  353. \dp\Mathstrutbox@\dp\z@
  354. \newdimen\spreadmlines@
  355. \def\spreadmatrixlines#1{\RIfMIfI@
  356.  \onlydmatherr@\spreadmatrixlines\else
  357.  \spreadmlines@#1\relax\fi\else\onlydmatherr@\spreadmatrixlines\fi}
  358. \def\matrix{\null\,\vcenter\bgroup\Let@\vspace@
  359.  \normalbaselines\openup\spreadmlines@\ialign
  360.  \bgroup\hfil$\m@th##$\hfil&&\quad\hfil$\m@th##$\hfil\crcr
  361.  \Mathstrut@\crcr\noalign{\kern-\baselineskip}}
  362. \def\endmatrix{\crcr\Mathstrut@\crcr\noalign{\kern-\baselineskip}\egroup
  363.  \egroup\,}
  364. \def\format{\crcr\egroup\iffalse{\fi\ifnum`}=0 \fi\format@}
  365. \newtoks\hashtoks@
  366. \hashtoks@{#}
  367. \def\format@#1\\{\def\preamble@{#1}%
  368.  \def\l{$\m@th\the\hashtoks@$\hfil}%
  369.  \def\c{\hfil$\m@th\the\hashtoks@$\hfil}%
  370.  \def\r{\hfil$\m@th\the\hashtoks@$}%
  371.  \edef\Preamble@{\preamble@}\ifnum`{=0 \fi\iffalse}\fi
  372.  \ialign\bgroup\span\Preamble@\crcr}
  373. \def\smallmatrix{\null\,\vcenter\bgroup\vspace@\Let@
  374.  \baselineskip9\ex@\lineskip\ex@
  375.  \ialign\bgroup\hfil$\m@th\scriptstyle{##}$\hfil&&\thickspace\hfil
  376.  $\m@th\scriptstyle{##}$\hfil\crcr}
  377. \def\endsmallmatrix{\crcr\egroup\egroup\,}
  378. \def\pmatrix{\left(\matrix}
  379. \def\endpmatrix{\endmatrix\right)}
  380. \def\bmatrix{\left[\matrix}
  381. \def\endbmatrix{\endmatrix\right]}
  382. \def\vmatrix{\left|\matrix}
  383. \def\endvmatrix{\endmatrix\right|}
  384. \def\Vmatrix{\left\|\matrix}
  385. \def\endVmatrix{\endmatrix\right\|}
  386. \def\hdots{\mathinner{\ldotp\ldotp\ldotp}}
  387. \newmuskip\dotsspace@
  388. \dotsspace@1.5mu
  389. \def\strip@#1 {#1}
  390. \def\spacehdots#1\for#2{\multispan{#2}\xleaders
  391.  \hbox{$\m@th\mkern\strip@#1 \dotsspace@.\mkern\strip@#1 \dotsspace@$}\hfill}
  392. \def\hdotsfor#1{\spacehdots\@ne\for{#1}}
  393. \def\multispan@#1{\omit\mscount#1\unskip\loop\ifnum\mscount>\@ne\sp@n\repeat}
  394. \def\spaceinnerhdots#1\for#2\after#3{\multispan@{\strip@#2 }#3\xleaders
  395.  \hbox{$\m@th\mkern\strip@#1 \dotsspace@.\mkern\strip@#1 \dotsspace@$}\hfill}
  396. \def\innerhdotsfor#1\after#2{\spaceinnerhdots\@ne\for#1\after{#2}}
  397. \def\cases{\bgroup\spreadmlines@\jot\left\{\,\matrix\format\l&\quad\l\\}
  398. \def\endcases{\endmatrix\right.\egroup}
  399. \def\strut@{\copy\strutbox@}
  400. \newbox\strutbox@
  401. \setbox\strutbox@\hbox{\vrule\height8\p@\depth3\p@\width\z@}
  402. \def\topaligned{\null\,\vtop\aligned@}
  403. \def\botaligned{\null\,\vbox\aligned@}
  404. \def\aligned{\null\,\vcenter\aligned@}
  405. \def\aligned@{\bgroup\vspace@\Let@
  406.  \openup\jot\ialign
  407.  \bgroup\hfil\strut@$\m@th\displaystyle{##}$&
  408.  $\m@th\displaystyle{{}##}$\hfil\crcr}
  409. \def\endaligned{\crcr\egroup\egroup}
  410. \let\endtopaligned\endaligned
  411. \let\endbotaligned\endaligned
  412. \def\alignedat#1{\null\,\vcenter\bgroup\doat@{#1}\vspace@\Let@
  413.  \openup\jot\ialign\bgroup\span\preamble@@\crcr}
  414. \newcount\atcount@
  415. \def\doat@#1{\toks@{\hfil\strut@$\m@th
  416.  \displaystyle{\the\hashtoks@}$&$\m@th\displaystyle
  417.  {{}\the\hashtoks@}$\hfil}%
  418.  \atcount@#1\relax\advance\atcount@\m@ne
  419.  \loop\ifnum\atcount@>\z@\toks@=\expandafter{\the\toks@&\hfil$\m@th
  420.  \displaystyle{\the\hashtoks@}$&$\m@th
  421.  \displaystyle{{}\the\hashtoks@}$\hfil}\advance\atcount@\m@ne\repeat
  422.  \edef\preamble@{\the\toks@}\edef\preamble@@{\preamble@}}
  423. \let\endalignedat\endaligned
  424. \def\gathered{\null\,\vcenter\bgroup\vspace@\Let@
  425.  \openup\jot\ialign
  426.  \bgroup\hfil\strut@$\m@th\displaystyle{##}$\hfil\crcr}
  427. \def\endgathered{\crcr\egroup\egroup}
  428. \def\bmod{\mskip-\medmuskip\mkern5mu\mathbin{\fam\z@ mod}\penalty900
  429.  \mkern5mu\mskip-\medmuskip}
  430. \def\pmod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi
  431.  ({\fam\z@ mod}\,\,#1)}
  432. \def\pod#1{\allowbreak\ifinner\mkern8mu\else\mkern18mu\fi(#1)}
  433. \def\mod#1{\allowbreak\ifinner\mkern12mu\else\mkern18mu\fi{\fam\z@ mod}\,\,#1}
  434. \newcount\cfraccount@
  435. \def\cfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut
  436.  \iffalse{\fi\def\\{\over\displaystyle}\iffalse}\fi}
  437. \def\lcfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut
  438.  \iffalse{\fi\def\\{\hfill\over\displaystyle}\iffalse}\fi}
  439. \def\rcfrac{\bgroup\bgroup\advance\cfraccount@\@ne\strut\hfill
  440.  \iffalse{\fi\def\\{\over\displaystyle}\iffalse}\fi}
  441. \def\endcfrac{\gloop@\ifnum\cfraccount@>\z@\global\advance\cfraccount@\m@ne
  442.  \egroup\hskip-\nulldelimiterspace\egroup\repeat}
  443. \def\binrel@#1{\setboxz@h{\thinmuskip0mu
  444.   \medmuskip\m@ne mu\thickmuskip\@ne mu$#1\m@th$}%
  445.  \setbox\tw@\hbox{\thinmuskip0mu\medmuskip\m@ne mu\thickmuskip
  446.   \@ne mu${}#1{}\m@th$}%
  447.  \setbox\tw@\hbox{\hskip\wd\tw@\hskip-\wdz@}}
  448. \def\overset#1\to#2{\binrel@{#2}\ifdim\wd\tw@<\z@
  449.  \mathbin{\mathop{\kern\z@#2}\limits^{#1}}\else\ifdim\wd\tw@>\z@
  450.  \mathrel{\mathop{\kern\z@#2}\limits^{#1}}\else
  451.  {\mathop{\kern\z@#2}\limits^{#1}}{}\fi\fi}
  452. \def\underset#1\to#2{\binrel@{#2}\ifdim\wd\tw@<\z@
  453.  \mathbin{\mathop{\kern\z@#2}\limits_{#1}}\else\ifdim\wd\tw@>\z@
  454.  \mathrel{\mathop{\kern\z@#2}\limits_{#1}}\else
  455.  {\mathop{\kern\z@#2}\limits_{#1}}{}\fi\fi}
  456. \def\oversetbrace#1\to#2{\overbrace{#2}^{#1}}
  457. \def\undersetbrace#1\to#2{\underbrace{#2}_{#1}}
  458. \def\sideset#1\and#2\to#3{%
  459.  \setboxz@h{$\dsize{\vphantom{#3}}#1{#3}\m@th$}%
  460.  \setbox\tw@\hbox{$\dsize{#3}#2\m@th$}%
  461.  \hskip\wdz@\hskip-\wd\tw@\mathop{\hskip\wd\tw@\hskip-\wdz@
  462.   {\vphantom{#3}}#1{#3}#2}}
  463. \def\rightarrowfill@#1{$#1\m@th\mathord-\mkern-6mu\cleaders
  464.  \hbox{$#1\mkern-2mu\mathord-\mkern-2mu$}\hfill
  465.  \mkern-6mu\mathord\rightarrow$}
  466. \def\leftarrowfill@#1{$#1\m@th\mathord\leftarrow\mkern-6mu\cleaders
  467.  \hbox{$#1\mkern-2mu\mathord-\mkern-2mu$}\hfill\mkern-6mu\mathord-$}
  468. \def\leftrightarrowfill@#1{$#1\m@th\mathord\leftarrow\mkern-6mu\cleaders
  469.  \hbox{$#1\mkern-2mu\mathord-\mkern-2mu$}\hfill
  470.  \mkern-6mu\mathord\rightarrow$}
  471. \def\overrightarrow{\mathpalette\overrightarrow@}
  472. \def\overrightarrow@#1#2{\vbox{\ialign{##\crcr\rightarrowfill@#1\crcr
  473.  \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}
  474. \let\overarrow\overrightarrow
  475. \def\overleftarrow{\mathpalette\overleftarrow@}
  476. \def\overleftarrow@#1#2{\vbox{\ialign{##\crcr\leftarrowfill@#1\crcr
  477.  \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}
  478. \def\overleftrightarrow{\mathpalette\overleftrightarrow@}
  479. \def\overleftrightarrow@#1#2{\vbox{\ialign{##\crcr\leftrightarrowfill@#1\crcr
  480.  \noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#1#2\hfil$\crcr}}}
  481. \def\underrightarrow{\mathpalette\underrightarrow@}
  482. \def\underrightarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr
  483.  \noalign{\nointerlineskip}\rightarrowfill@#1\crcr}}}
  484. \let\underarrow\underrightarrow
  485. \def\underleftarrow{\mathpalette\underleftarrow@}
  486. \def\underleftarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr
  487.  \noalign{\nointerlineskip}\leftarrowfill@#1\crcr}}}
  488. \def\underleftrightarrow{\mathpalette\underleftrightarrow@}
  489. \def\underleftrightarrow@#1#2{\vtop{\ialign{##\crcr$\m@th\hfil#1#2\hfil$\crcr
  490.  \noalign{\nointerlineskip}\leftrightarrowfill@#1\crcr}}}
  491. \let\DOTSI\relax
  492. \let\DOTSB\relax
  493. \let\DOTSX\relax
  494. \newif\ifmath@
  495. {\uccode`7=`\\ \uccode`8=`m \uccode`9=`a \uccode`0=`t \uccode`!=`h
  496.  \uppercase{\gdef\math@#1#2#3#4#5#6\math@{\global\math@false\ifx 7#1\ifx 8#2%
  497.  \ifx 9#3\ifx 0#4\ifx !#5\xdef\meaning@{#6}\global\math@true\fi\fi\fi\fi\fi}}}
  498. \newif\ifmathch@
  499. {\uccode`7=`c \uccode`8=`h \uccode`9=`\"
  500.  \uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\global\mathch@false
  501.   \ifx 7#1\ifx 8#2\ifx 9#5\global\mathch@true\xdef\meaning@{9#6}\fi\fi\fi}}}
  502. \newcount\classnum@
  503. \def\getmathch@#1.#2\getmathch@{\classnum@#1 \divide\classnum@4096
  504.  \ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\or
  505.  \gdef\thedots@{\dotsb@}\fi}
  506. \newif\ifmathbin@
  507. {\uccode`4=`b \uccode`5=`i \uccode`6=`n
  508.  \uppercase{\gdef\mathbin@#1#2#3{%
  509.   \DNii@##1\mathbin@{\ifx\space@\next\global\mathbin@true\fi}%
  510.  \global\mathbin@false\DN@##1\mathbin@{}%
  511.  \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
  512. \newif\ifmathrel@
  513. {\uccode`4=`r \uccode`5=`e \uccode`6=`l
  514.  \uppercase{\gdef\mathrel@#1#2#3{%
  515.   \DNii@##1\mathrel@{\ifx\space@\next\global\mathrel@true\fi}%
  516.  \global\mathrel@false\DN@##1\mathrel@{}%
  517.  \ifx 4#1\ifx 5#2\ifx 6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}
  518. \newif\ifmacro@
  519. {\uccode`5=`m \uccode`6=`a \uccode`7=`c
  520.  \uppercase{\gdef\macro@#1#2#3#4\macro@{\global\macro@false
  521.   \ifx 5#1\ifx 6#2\ifx 7#3\global\macro@true
  522.   \xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}}
  523. \def\macro@@#1->#2\macro@@{#2}
  524. \newif\ifDOTS@
  525. \newcount\DOTSCASE@
  526. {\uccode`6=`\\ \uccode`7=`D \uccode`8=`O \uccode`9=`T \uccode`0=`S
  527.  \uppercase{\gdef\DOTS@#1#2#3#4#5{\global\DOTS@false\DN@##1\DOTS@{}%
  528.   \ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\ifx 0#5\let\next@\DOTS@@\fi\fi\fi\fi\fi
  529.   \next@}}}
  530. {\uccode`3=`B \uccode`4=`I \uccode`5=`X
  531.  \uppercase{\gdef\DOTS@@#1{%
  532.   \DNii@##1\DOTS@{\ifx\space@\next\global\DOTS@true\fi}%
  533.   \DN@{\FN@\nextii@}%
  534.   \ifx 3#1\global\DOTSCASE@\z@\else
  535.   \ifx 4#1\global\DOTSCASE@\@ne\else
  536.   \ifx 5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}%
  537.   \fi\fi\fi\next@}}}
  538. \newif\ifnot@
  539. {\uccode`5=`\\ \uccode`6=`n \uccode`7=`o \uccode`8=`t
  540.  \uppercase{\gdef\not@#1#2#3#4{%
  541.   \DNii@##1\not@{\ifx\space@\next\global\not@true\fi}%
  542.  \global\not@false\DN@##1\not@{}%
  543.  \ifx 5#1\ifx 6#2\ifx 7#3\ifx 8#4\DN@{\FN@\nextii@}\fi\fi\fi
  544.  \fi\next@}}}
  545. \newif\ifkeybin@
  546. \def\dots{\RIfM@\expandafter\mdots@\else\expandafter\tdots@\fi}
  547. \def\mdots@{\FN@\mdots@@}
  548. \def\mdots@@{\gdef\thedots@{\dotso@}%
  549.  \ifx\next\boldkey\gdef\thedots@\boldkey{\boldkeydots@}\else
  550.  \ifx\next\boldsymbol\gdef\thedots@\boldsymbol{\boldsymboldots@}\else
  551.  \ifx,\next\gdef\thedots@{\dotsc}%
  552.  \else\ifx\not\next\gdef\thedots@{\dotsb@}%
  553.  \else\keybin@
  554.  \ifkeybin@\gdef\thedots@{\dotsb@}%
  555.  \else\xdef\meaning@{\meaning\next..........}\xdef\meaning@@{\meaning@}%
  556.   \expandafter\math@\meaning@\math@
  557.   \ifmath@
  558.    \expandafter\mathch@\meaning@\mathch@
  559.    \ifmathch@\expandafter\getmathch@\meaning@\getmathch@\fi
  560.   \else\expandafter\macro@\meaning@@\macro@
  561.   \ifmacro@
  562.    \expandafter\not@\meaning@\not@\ifnot@\gdef\thedots@{\dotsb@}%
  563.   \else\expandafter\DOTS@\meaning@\DOTS@
  564.   \ifDOTS@
  565.    \ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}%
  566.     \or\gdef\thedots@{\dotsi}\else\fi
  567.   \else\expandafter\math@\meaning@\math@
  568.   \ifmath@\expandafter\mathbin@\meaning@\mathbin@
  569.   \ifmathbin@\gdef\thedots@{\dotsb@}%
  570.   \else\expandafter\mathrel@\meaning@\mathrel@
  571.   \ifmathrel@\gdef\thedots@{\dotsb@}%
  572.   \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  573.  \thedots@}
  574. \def\plainldots@{\mathinner{\ldotp\ldotp\ldotp}}
  575. \def\plaincdots@{\mathinner{\cdotp\cdotp\cdotp}}
  576. \def\dotsi{\!\plaincdots@}
  577. \let\dotsb@\plaincdots@
  578. \newif\ifextra@
  579. \newif\ifrightdelim@
  580. \def\rightdelim@{\global\rightdelim@true
  581.  \ifx\next)\else
  582.  \ifx\next]\else
  583.  \ifx\next\rbrack\else
  584.  \ifx\next\}\else
  585.  \ifx\next\rbrace\else
  586.  \ifx\next\rangle\else
  587.  \ifx\next\rceil\else
  588.  \ifx\next\rfloor\else
  589.  \ifx\next\rgroup\else
  590.  \ifx\next\rmoustache\else
  591.  \ifx\next\right\else
  592.  \ifx\next\bigr\else
  593.  \ifx\next\biggr\else
  594.  \ifx\next\Bigr\else
  595.  \ifx\next\Biggr\else\global\rightdelim@false
  596.  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
  597. \def\extra@{%
  598.  \global\extra@false\rightdelim@\ifrightdelim@\global\extra@true
  599.  \else\ifx\next$\global\extra@true
  600.  \else\xdef\meaning@{\meaning\next..........}%
  601.  \expandafter\macro@\meaning@\macro@\ifmacro@
  602.  \expandafter\DOTS@\meaning@\DOTS@
  603.  \ifDOTS@
  604.  \ifnum\DOTSCASE@=\tw@\global\extra@true
  605.  \fi\fi\fi\fi\fi}
  606. \newif\ifbold@
  607. \def\dotso@{%
  608.  \ifbold@
  609.   \let\next\delayed@
  610.   \DNii@{\extra@\plainldots@\ifextra@\,\fi}%
  611.  \else
  612.   \DNii@{\DN@{\extra@\plainldots@\ifextra@\,\fi}\FN@\next@}%
  613.  \fi
  614.  \nextii@}
  615. \def\ldots{\DN@{\extrap@\plainldots@}%
  616.  \FN@\next@}
  617. \def\cdots{\DN@{\extrap@\plaincdots@}%
  618.  \FN@\next@}
  619. \let\dotso\ldots
  620. \let\dotsb\cdots
  621. \let\dotsm\dotsb
  622. \def\cdot{\mathchar"2201 }
  623. \def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}
  624. \def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}
  625. \def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}
  626. \def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}
  627. \def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}
  628. \def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}
  629. \def\mapsto{\DOTSB\mapstochar\rightarrow}
  630. \def\longmapsto{\DOTSB\mapstochar\longrightarrow}
  631. \def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow}
  632. \def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook}
  633. \def\doteq{\DOTSB\buildrel\textstyle.\over=}
  634. \def\iff{\DOTSB\;\Longleftrightarrow\;}
  635. \def\dddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
  636.  \hbox{\rm...}\vss}}}}
  637. \def\ddddot#1{{\mathop{#1}\limits^{\vbox to-1.4\ex@{\kern-\tw@\ex@
  638.  \hbox{\rm....}\vss}}}}
  639. \def\sphat{^{\mathchoice{}{}%
  640.  {\,\,\botsmash{\hbox{\lower4\ex@\hbox{$\m@th\widehat{\null}$}}}}%
  641.  {\,\botsmash{\hbox{\lower3\ex@\hbox{$\m@th\hat{\null}$}}}}}}
  642. \def\spcheck{^\vee}
  643. \def\sptilde{^\sim}
  644. \def\spacute{^{\!\botsmash{\hbox{\lower\@ne ex\hbox{\'{}}}}}}
  645. \def\spgrave{^{\mathchoice{}{}{}{\!}%
  646.  \botsmash{\hbox{\lower\@ne ex\hbox{\`{}}}}}}
  647. \def\spdot{^{\hbox{\raise\ex@\hbox{\rm.}}}}
  648. \def\spddot{^{\hbox{\raise\ex@\hbox{\rm..}}}}
  649. \def\spdddot{^{\hbox{\raise\ex@\hbox{\rm...}}}}
  650. \def\spddddot{^{\hbox{\raise\ex@\hbox{\rm....}}}}
  651. \def\spbreve{^{\!\botsmash{\hbox{\lower4\ex@\hbox{\u{}}}}}}
  652. \def\spbar{^-}
  653. \def\spvec{^\rightarrow}
  654. \def\textonlyfont@#1#2{\def#1{\RIfM@
  655.  \Err@{Use \noexpand#1only in text}\else#2\fi}}
  656. \textonlyfont@\rm\tenrm
  657. \textonlyfont@\it\tenit
  658. \textonlyfont@\sl\tensl
  659. \textonlyfont@\bf\tenbf
  660. \def\oldnos#1{\RIfM@{\mathcode`\,="013B \fam\@ne#1}\else
  661.  \leavevmode\hbox{$\m@th\mathcode`\,="013B \fam\@ne#1$}\fi}
  662. \def\text{\RIfM@\expandafter\text@\else\expandafter\text@@\fi}
  663. \def\text@@#1{\leavevmode\hbox{#1}}
  664. \def\mathhexbox@#1#2#3{\text{$\m@th\mathchar"#1#2#3$}}
  665. \def\dag{{\mathhexbox@279}}
  666. \def\ddag{{\mathhexbox@27A}}
  667. \def\S{{\mathhexbox@278}}
  668. \def\P{{\mathhexbox@27B}}
  669. \newif\iffirstchoice@
  670. \firstchoice@true
  671. \def\text@#1{\mathchoice
  672.  {\hbox{\everymath{\displaystyle}\def\textfonti{\the\textfont\@ne}%
  673.   \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}}
  674.  {\hbox{\firstchoice@false
  675.   \everymath{\textstyle}\def\textfonti{\the\textfont\@ne}%
  676.   \def\textfontii{\the\textfont\tw@}\textdef@@ T#1}}
  677.  {\hbox{\firstchoice@false
  678.   \everymath{\scriptstyle}\def\textfonti{\the\scriptfont\@ne}%
  679.   \def\textfontii{\the\scriptfont\tw@}\textdef@@ S\rm#1}}
  680.  {\hbox{\firstchoice@false
  681.   \everymath{\scriptscriptstyle}\def\textfonti
  682.   {\the\scriptscriptfont\@ne}%
  683.   \def\textfontii{\the\scriptscriptfont\tw@}\textdef@@ s\rm#1}}}
  684. \def\textdef@@#1{\textdef@#1\rm\textdef@#1\bf\textdef@#1\sl\textdef@#1\it}
  685. \def\rmfam{0}
  686. \def\textdef@#1#2{%
  687.  \DN@{\csname\expandafter\eat@\string#2fam\endcsname}%
  688.  \if S#1\edef#2{\the\scriptfont\next@\relax}%
  689.  \else\if s#1\edef#2{\the\scriptscriptfont\next@\relax}%
  690.  \else\edef#2{\the\textfont\next@\relax}\fi\fi}
  691. \scriptfont\itfam\tenit \scriptscriptfont\itfam\tenit
  692. \scriptfont\slfam\tensl \scriptscriptfont\slfam\tensl
  693. \newif\iftopfolded@
  694. \newif\ifbotfolded@
  695. \def\topfoldedtext{\topfolded@true\botfolded@false\foldedtext@}
  696. \def\botfoldedtext{\botfolded@true\topfolded@false\foldedtext@}
  697. \def\foldedtext{\topfolded@false\botfolded@false\foldedtext@}
  698. \Invalid@\foldedwidth
  699. \def\foldedtext@{%
  700.  \DN@{\ifx\next\foldedwidth\let\next@\nextii@\else
  701.   \DN@{\nextii@\foldedwidth{.3\hsize}}\fi\next@}%
  702.  \DNii@\foldedwidth##1##2{\setbox\z@\vbox
  703.   {\normalbaselines\hsize##1\relax
  704.   \tolerance1600 \noindent\ignorespaces##2}\ifbotfolded@\boxz@\else
  705.   \iftopfolded@\vtop{\unvbox\z@}\else\vcenter{\boxz@}\fi\fi}%
  706.  \FN@\next@}
  707. \def\bold{\RIfM@\expandafter\bold@\else
  708.  \expandafter\nonmatherr@\expandafter\bold\fi}
  709. \def\bold@#1{{\bold@@{#1}}}
  710. \def\bold@@#1{\fam\bffam\relax#1}
  711. \def\slanted{\RIfM@\expandafter\slanted@\else
  712.  \expandafter\nonmatherr@\expandafter\slanted\fi}
  713. \def\slanted@#1{{\slanted@@{#1}}}
  714. \def\slanted@@#1{\fam\slfam\relax#1}
  715. \def\rom{\RIfM@\expandafter\rom@\else
  716.  \expandafter\nonmatherr@\expandafter\rom\fi}
  717. \def\rom@#1{{\rom@@{#1}}}
  718. \def\rom@@#1{\fam\rmfam\relax#1}
  719. \def\italic{\RIfM@\expandafter\italic@\else
  720.  \expandafter\nonmatherr@\expandafter\italic\fi}
  721. \def\italic@#1{{\italic@@{#1}}}
  722. \def\italic@@#1{\fam\itfam\relax#1}
  723. \def\Cal{\RIfM@\expandafter\Cal@\else
  724.  \expandafter\nonmatherr@\expandafter\Cal\fi}
  725. \def\Cal@#1{{\Cal@@{#1}}}
  726. \def\Cal@@#1{\noaccents@\fam\tw@#1}
  727. \mathchardef\Gamma="0000
  728. \mathchardef\Delta="0001
  729. \mathchardef\Theta="0002
  730. \mathchardef\Lambda="0003
  731. \mathchardef\Xi="0004
  732. \mathchardef\Pi="0005
  733. \mathchardef\Sigma="0006
  734. \mathchardef\Upsilon="0007
  735. \mathchardef\Phi="0008
  736. \mathchardef\Psi="0009
  737. \mathchardef\Omega="000A
  738. \mathchardef\varGamma="0100
  739. \mathchardef\varDelta="0101
  740. \mathchardef\varTheta="0102
  741. \mathchardef\varLambda="0103
  742. \mathchardef\varXi="0104
  743. \mathchardef\varPi="0105
  744. \mathchardef\varSigma="0106
  745. \mathchardef\varUpsilon="0107
  746. \mathchardef\varPhi="0108
  747. \mathchardef\varPsi="0109
  748. \mathchardef\varOmega="010A
  749. \newif\ifmsamloaded@
  750. \newif\ifmsbmloaded@
  751. \newif\ifeufmloaded@
  752. \let\alloc@@\alloc@
  753. \def\hexnumber@#1{\ifcase#1 0\or 1\or 2\or 3\or 4\or 5\or 6\or 7\or 8\or
  754.  9\or A\or B\or C\or D\or E\or F\fi}
  755. \edef\bffam@{\hexnumber@\bffam}
  756. \def\loadmsam{\msamloaded@true
  757.  \font\tenmsa=msam10
  758.  \font\sevenmsa=msam7
  759.  \font\fivemsa=msam5
  760.  \alloc@@8\fam\chardef\sixt@@n\msafam
  761.  \textfont\msafam=\tenmsa
  762.  \scriptfont\msafam=\sevenmsa
  763.  \scriptscriptfont\msafam=\fivemsa
  764.  \edef\msafam@{\hexnumber@\msafam}%
  765.  \mathchardef\dabar@"0\msafam@39
  766.  \def\dashrightarrow{\mathrel{\dabar@\dabar@\mathchar"0\msafam@4B}}%
  767.  \def\dashleftarrow{\mathrel{\mathchar"0\msafam@4C\dabar@\dabar@}}%
  768.  \let\dasharrow\dashrightarrow
  769.  \def\ulcorner{\delimiter"4\msafam@70\msafam@70 }
  770.  \def\urcorner{\delimiter"5\msafam@71\msafam@71 }
  771.  \def\llcorner{\delimiter"4\msafam@78\msafam@78 }
  772.  \def\lrcorner{\delimiter"5\msafam@79\msafam@79 }
  773.  \def\yen{{\mathhexbox@\msafam@55 }}
  774.  \def\checkmark{{\mathhexbox@\msafam@58 }}
  775.  \def\circledR{{\mathhexbox@\msafam@72 }}
  776.  \def\maltese{{\mathhexbox@\msafam@7A }}}
  777. \def\loadmsbm{\msbmloaded@true
  778.  \font\tenmsb=msbm10
  779.  \font\sevenmsb=msbm7
  780.  \font\fivemsb=msbm5
  781.  \alloc@@8\fam\chardef\sixt@@n\msbfam
  782.  \textfont\msbfam=\tenmsb
  783.  \scriptfont\msbfam=\sevenmsb
  784.  \scriptscriptfont\msbfam=\fivemsb
  785.  \edef\msbfam@{\hexnumber@\msbfam}}
  786. \def\widehat#1{\ifmsbmloaded@
  787.  \setboxz@h{$\m@th#1$}\ifdim\wdz@>\tw@ em\mathaccent"0\msbfam@5B{#1}\else
  788.   \mathaccent"0362{#1}\fi
  789.  \else\mathaccent"0362{#1}\fi}
  790. \def\widetilde#1{\ifmsbmloaded@
  791.  \setboxz@h{$\m@th#1$}\ifdim\wdz@>\tw@ em\mathaccent"0\msbfam@5D{#1}\else
  792.   \mathaccent"0365{#1}\fi
  793.  \else\mathaccent"0365{#1}\fi}
  794. \def\newsymbol#1#2#3#4#5{\define#1{}\let\next@\relax
  795.  \ifnum#2=\@ne\ifmsamloaded@\let\next@\msafam@\fi\else
  796.  \ifnum#2=\tw@\ifmsbmloaded@\let\next@\msbfam@\fi\fi\fi
  797.  \ifx\next@\relax
  798.   \ifnum#2>\tw@\Err@{\Invalid@@\string\newsymbol}\else
  799.   \ifnum#2=\@ne\Err@{You must first \string\loadmsam}\else
  800.    \Err@{You must first \string\loadmsbm}\fi\fi
  801.  \else
  802.   \mathchardef#1="#3\next@#4#5
  803.  \fi}
  804. \def\UseAMSsymbols{\input amssym.tex\relax}
  805. \def\Bbb{\RIfM@\expandafter\Bbb@\else
  806.  \expandafter\nonmatherr@\expandafter\Bbb\fi}
  807. \def\Bbb@#1{{\Bbb@@{#1}}}
  808. \def\Bbb@@#1{\noaccents@\fam\msyfam\relax#1}
  809. \def\loadeufm{\eufmloaded@true
  810.  \font\teneufm=eufm10
  811.  \font\seveneufm=eufm7
  812.  \font\fiveeufm=eufm5
  813.  \alloc@@8\fam\chardef\sixt@@n\eufmfam
  814.  \textfont\eufmfam=\teneufm
  815.  \scriptfont\eufmfam=\seveneufm
  816.  \scriptscriptfont\eufmfam=\fiveeufm}
  817. \def\frak{\RIfM@\expandafter\frak@\else
  818.  \expandafter\nonmatherr@\expandafter\frak\fi}
  819. \def\frak@#1{{\frak@@{#1}}}
  820. \def\frak@@#1{\fam\eufmfam\relax#1}
  821. \let\goth\frak
  822. \newif\ifcmmibloaded@
  823. \newif\ifcmbsyloaded@
  824. \def\loadbold{\cmmibloaded@true\cmbsyloaded@true
  825.  \font\tencmmib=cmmib10
  826.  \font\sevencmmib=cmmib7
  827.  \font\fivecmmib=cmmib5
  828.  \alloc@@8\fam\chardef\sixt@@n\cmmibfam
  829.  \textfont\cmmibfam=\tencmmib
  830.  \scriptfont\cmmibfam=\sevencmmib
  831.  \scriptscriptfont\cmmibfam=\fivecmmib
  832.  \edef\cmmibfam@{\hexnumber@\cmmibfam}%
  833.  \font\tencmbsy=cmbsy10
  834.  \font\sevencmbsy=cmbsy7
  835.  \font\fivecmbsy=cmbsy5
  836.  \alloc@@8\fam\chardef\sixt@@n\cmbsyfam
  837.  \textfont\cmbsyfam=\tencmbsy
  838.  \scriptfont\cmbsyfam=\sevencmbsy
  839.  \scriptscriptfont\cmbsyfam=\fivecmbsy
  840.  \edef\cmbsyfam@{\hexnumber@\cmbsyfam}}
  841. \def\mathchari@#1#2#3{\ifcmmibloaded@\mathchar"#1\cmmibfam@#2#3 \else
  842.  \Err@{First bold symbol font not loaded}\fi}
  843. \def\mathcharii@#1#2#3{\ifcmbsyloaded@\mathchar"#1\cmbsyfam@#2#3 \else
  844.  \Err@{Second bold symbol font not loaded}\fi}
  845. \def\boldsymbol#1{%
  846.  \DN@{\Err@{You can't use \string\boldsymbol\space with \string#1}#1}%
  847.  \ifcat\noexpand#1A%
  848.    \let\next@\relax
  849.   \ifcmmibloaded@{\fam\cmmibfam#1}\else\Err@{First bold symbol
  850.    font not loaded}\fi
  851.  \else
  852.   \xdef\meaning@{\meaning#1.........}%
  853.   \expandafter\math@\meaning@\math@
  854.   \ifmath@
  855.    \expandafter\mathch@\meaning@\mathch@
  856.    \ifmathch@
  857.     \expandafter\boldsymbol@@\meaning@\boldsymbol@@
  858.    \fi
  859.   \else
  860.    \expandafter\macro@\meaning@\macro@
  861.    \expandafter\delim@\meaning@\delim@
  862.    \ifdelim@
  863.     \expandafter\delim@@\meaning@\delim@@
  864.    \else
  865.     \boldsymbol@{#1}%
  866.    \fi
  867.   \fi
  868.  \fi
  869.  \next@}
  870. \def\mathhexboxii@#1#2{\ifcmbsyloaded@\mathhexbox@{\cmbsyfam@}{#1}{#2}\else
  871.   \Err@{Second bold symbol font not loaded}\fi}
  872. \def\boldsymbol@#1{\let\next@\relax\let\next#1%
  873.  \ifx\next\cdot\mathcharii@201 \else
  874.  \ifx\next\prime{{\null\mathcharii@030 \null}}\else
  875.  \ifx\next\lbrack\mathchar"4\bffam@5B \else
  876.  \ifx\next\rbrack\mathchar"5\bffam@5D \else
  877.  \ifx\next\{\mathcharii@466 \else
  878.  \ifx\next\lbrace\mathcharii@466 \else
  879.  \ifx\next\}\mathcharii@567 \else
  880.  \ifx\next\rbrace\mathcharii@567 \else
  881.  \ifx\next\surd{{\mathcharii@170}}\else
  882.  \ifx\next\S{{\mathhexboxii@78}}\else
  883.  \ifx\next\P{{\mathhexboxii@7B}}\else
  884.  \ifx\next\dag{{\mathhexboxii@79}}\else
  885.  \ifx\next\ddag{{\mathhexboxii@7A}}\else
  886.  \DN@{\Err@{You can't use \string\boldsymbol\space with \string#1}#1}%
  887.  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
  888. \def\boldsymbol@@#1.#2\boldsymbol@@{\classnum@#1 \count@@@\classnum@
  889.  \divide\classnum@4096 \count@\classnum@
  890.  \multiply\count@4096 \advance\count@@@-\count@ \count@@\count@@@
  891.  \divide\count@@@\@cclvi \count@\count@@
  892.  \multiply\count@@@\@cclvi \advance\count@@-\count@@@
  893.  \divide\count@@@\@cclvi
  894.  \multiply\classnum@4096 \advance\classnum@\count@@
  895.  \ifnum\count@@@=\z@
  896.   \count@"\bffam@ \multiply\count@\@cclvi
  897.   \advance\classnum@\count@
  898.   \DN@{\mathchar\number\classnum@}%
  899.  \else
  900.   \ifnum\count@@@=\@ne
  901.    \ifcmmibloaded@
  902.    \count@"\cmmibfam@ \multiply\count@\@cclvi
  903.    \advance\classnum@\count@
  904.    \DN@{\mathchar\number\classnum@}%
  905.    \else\DN@{\Err@{First bold symbol font not loaded}}\fi
  906.   \else
  907.    \ifnum\count@@@=\tw@
  908.   \ifcmbsyloaded@
  909.     \count@"\cmbsyfam@ \multiply\count@\@cclvi
  910.     \advance\classnum@\count@
  911.     \DN@{\mathchar\number\classnum@}%
  912.   \else\DN@{\Err@{Second bold symbol font not loaded}}\fi
  913.   \fi
  914.  \fi
  915. \fi}
  916. \newif\ifdelim@
  917. \newcount\delimcount@
  918. {\uccode`6=`\\ \uccode`7=`d \uccode`8=`e \uccode`9=`l
  919.  \uppercase{\gdef\delim@#1#2#3#4#5\delim@
  920.   {\delim@false\ifx 6#1\ifx 7#2\ifx 8#3\ifx 9#4\delim@true
  921.    \xdef\meaning@{#5}\fi\fi\fi\fi}}}
  922. \def\delim@@#1"#2#3#4#5#6\delim@@{\if#32%
  923. \let\next@\relax
  924.  \ifcmbsyloaded@
  925.  \mathcharii@#2#4#5 \else\Err@{Second bold family not loaded}\fi\fi}
  926. \def\vert{\delimiter"026A30C }
  927. \def\Vert{\delimiter"026B30D }
  928. \let\|\Vert
  929. \def\backslash{\delimiter"026E30F }
  930. \def\boldkeydots@#1{\bold@true\let\next=#1\let\delayed@=#1\mdots@@
  931.  \boldkey#1\bold@false}  % = required!
  932. \def\boldsymboldots@#1{\bold@true\let\next#1\let\delayed@#1\mdots@@
  933.  \boldsymbol#1\bold@false}
  934.  
  935. %%\newif\ifeufbloaded@
  936. %%\def\loadeufb{\eufbloaded@true
  937. %% \font\teneufb=eufb10
  938. %% \font\seveneufb=eufb7
  939. %% \font\fiveeufb=eufb5
  940. %% \alloc@@8\fam\chardef\sixt@@n\eufbfam
  941. %% \textfont\eufbfam=\teneufb
  942. %% \scriptfont\eufbfam=\seveneufb
  943. %% \scriptscriptfont\eufbfam=\fiveeufb
  944. %% \edef\eufbfam@{\hexnumber@\eufbfam}}
  945.  
  946. %%\newif\ifeusmloaded@
  947. %%\def\loadeusm{\eusmloaded@true
  948. %% \font\teneusm=eusm10
  949. %% \font\seveneusm=eusm7
  950. %% \font\fiveeusm=eusm5
  951. %% \alloc@@8\fam\chardef\sixt@@n\eusmfam
  952. %% \textfont\eusmfam=\teneusm
  953. %% \scriptfont\eusmfam=\seveneusm
  954. %% \scriptscriptfont\eusmfam=\fiveeusm
  955. %% \edef\eusmfam@{\hexnumber@\eusmfam}}
  956.  
  957. %%\newif\ifeusbloaded@
  958. %%\def\loadeusb{\eusbloaded@true
  959. %% \font\teneusb=eusb10
  960. %% \font\seveneusb=eusb7
  961. %% \font\fiveeusb=eusb5
  962. %% \alloc@@8\fam\chardef\sixt@@n\eusbfam
  963. %% \textfont\eusbfam=\teneusb
  964. %% \scriptfont\eusbfam=\seveneusb
  965. %% \scriptscriptfont\eusbfam=\fiveeusb
  966. %% \edef\eusbfam@{\hexnumber@\eusbfam}}
  967.  
  968. %%\newif\ifeurmloaded@
  969. %%\def\loadeurm{\eurmloaded@true
  970. %% \font\teneurm=eurm10
  971. %% \font\seveneurm=eurm7
  972. %% \font\fiveeurm=eurm5
  973. %% \alloc@@8\fam\chardef\sixt@@n\eurmfam
  974. %% \textfont\eurmfam=\teneurm
  975. %% \scriptfont\eurmfam=\seveneurm
  976. %% \scriptscriptfont\eurmfam=\fiveeurm
  977. %% \edef\eurmfam@{\hexnumber@\eurmfam}}
  978.  
  979. %%\newif\ifeurbloaded@
  980. %%\def\loadeurb{\eurbloaded@true
  981. %% \font\teneurb=eurb10
  982. %% \font\seveneurb=eurb7
  983. %% \font\fiveeurb=eurb5
  984. %% \alloc@@8\fam\chardef\sixt@@n\eurbfam
  985. %% \textfont\eurbfam=\teneurb
  986. %% \scriptfont\eurbfam=\seveneurb
  987. %% \scriptscriptfont\eurbfam=\fiveeurb
  988. %% \edef\eurbfam@{\hexnumber@\eurbfam}}
  989.  
  990. \def\accentclass@{7}
  991. \def\noaccents@{\def\accentclass@{0}}
  992. \def\makeacc@#1#2{\def#1{\mathaccent"\accentclass@#2 }}
  993. \makeacc@\hat{05E}
  994. \makeacc@\check{014}
  995. \makeacc@\tilde{07E}
  996. \makeacc@\acute{013}
  997. \makeacc@\grave{012}
  998. \makeacc@\dot{05F}
  999. \makeacc@\ddot{07F}
  1000. \makeacc@\breve{015}
  1001. \makeacc@\bar{016}
  1002. \def\vec{\mathaccent"017E }
  1003. \newcount\skewcharcount@
  1004. \newcount\familycount@
  1005. \def\theskewchar@{\familycount@\@ne
  1006.  \global\skewcharcount@\the\skewchar\textfont\@ne
  1007.  \ifnum\fam>\m@ne\ifnum\fam<16
  1008.   \global\familycount@\the\fam\relax
  1009.   \global\skewcharcount@\the\skewchar\textfont\the\fam\relax\fi\fi
  1010.  \ifnum\skewcharcount@>\m@ne
  1011.   \ifnum\skewcharcount@<128
  1012.   \multiply\familycount@256
  1013.   \global\advance\skewcharcount@\familycount@
  1014.   \global\advance\skewcharcount@28672
  1015.   \mathchar\skewcharcount@\else
  1016.   \global\skewcharcount@\m@ne\fi\else
  1017.  \global\skewcharcount@\m@ne\fi}
  1018. \newcount\pointcount@
  1019. \def\getpoints@#1.#2\getpoints@{\pointcount@#1 }
  1020. \newdimen\accentdimen@
  1021. \newcount\accentmu@
  1022. \def\dimentomu@{\multiply\accentdimen@ 100
  1023.  \expandafter\getpoints@\the\accentdimen@\getpoints@
  1024.  \multiply\pointcount@18
  1025.  \divide\pointcount@\@m
  1026.  \global\accentmu@\pointcount@}
  1027. \def\Makeacc@#1#2{\def#1{\RIfM@\DN@{\mathaccent@
  1028.  {"\accentclass@#2 }}\else\DN@{\nonmatherr@{#1}}\fi\next@}}
  1029. \def\unbracefonts@{\let\Cal@\Cal@@\let\rom@\rom@@\let\bold@\bold@@
  1030.  \let\slanted@\slanted@@}
  1031. \def\mathaccent@#1#2{\ifnum\fam=\m@ne\xdef\thefam@{1}\else
  1032.  \xdef\thefam@{\the\fam}\fi
  1033.  \accentdimen@\z@
  1034.  \setboxz@h{\unbracefonts@$\m@th\fam\thefam@\relax#2$}%
  1035.  \ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}%
  1036.   \setbox\tw@\hbox{\unbracefonts@$\m@th\fam\thefam@\relax#2\theskewchar@$}%
  1037.   \setbox4=\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\else
  1038.    \mathchar\skewcharcount@\fi$}%
  1039.   \global\accentdimen@\wd\tw@\global\advance\accentdimen@-\wdz@
  1040.   \global\advance\accentdimen@-\wd4
  1041.   \global\multiply\accentdimen@\tw@
  1042.   \dimentomu@\global\advance\accentmu@\@ne
  1043.  \else\DN@{{\mathaccent#1{#2\mkern\accentmu@ mu}%
  1044.     \mkern-\accentmu@ mu}{}}\fi
  1045.  \next@}
  1046. \Makeacc@\Hat{05E}
  1047. \Makeacc@\Check{014}
  1048. \Makeacc@\Tilde{07E}
  1049. \Makeacc@\Acute{013}
  1050. \Makeacc@\Grave{012}
  1051. \Makeacc@\Dot{05F}
  1052. \Makeacc@\Ddot{07F}
  1053. \Makeacc@\Breve{015}
  1054. \Makeacc@\Bar{016}
  1055. \def\Vec{\RIfM@\DN@{\mathaccent@{"017E }}\else
  1056.  \DN@{\nonmatherr@\Vec}\fi\next@}
  1057. \def\sqrt#1{\radical"270370 {#1}}
  1058. \let\underline@\underline
  1059. \let\overline@\overline
  1060. \def\underline#1{\underline@{#1}}
  1061. \def\overline#1{\overline@{#1}}
  1062. \Invalid@\leftroot
  1063. \Invalid@\uproot
  1064. \newcount\uproot@
  1065. \newcount\leftroot@
  1066. \def\plainroot@#1\of#2{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}%
  1067.  \mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}
  1068.  {\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}
  1069. \def\r@@t#1#2{\setboxz@h{$\m@th#1\sqrt{#2}$}%
  1070.  \dimen@\ht\z@\advance\dimen@-\dp\z@
  1071.  \setbox\tw@\hbox{$\m@th#1\mskip\uproot@ mu$}\advance\dimen@ by1.667\wd\tw@
  1072.  \mkern-\leftroot@ mu\mkern5mu\raise.6\dimen@\copy\rootbox
  1073.  \mkern-10mu\mkern\leftroot@ mu\boxz@}
  1074. \def\boxed#1{\setboxz@h{$\m@th\displaystyle{#1}$}\dimen@.4\ex@
  1075.  \advance\dimen@3\ex@\advance\dimen@\dp\z@
  1076.  \hbox{\lower\dimen@\hbox{%
  1077.  \vbox{\hrule\height.4\ex@
  1078.  \hbox{\vrule\width.4\ex@\hskip3\ex@\vbox{\vskip3\ex@\boxz@\vskip3\ex@}%
  1079.  \hskip3\ex@\vrule\width.4\ex@}\hrule\height.4\ex@}%
  1080.  }}}
  1081. \newdimen\minaw@
  1082. \minaw@11.11128\ex@
  1083. \def\pmb{\RIfM@\expandafter\mathpalette\expandafter\pmb@\else
  1084.  \expandafter\pmb@@\fi}
  1085. \def\pmb@@#1{\leavevmode\setboxz@h{#1}\kern-.025em\copy\z@\kern-\wdz@
  1086.  \kern-.05em\copy\z@\kern-\wdz@\kern-.025em\raise.0433em\boxz@}
  1087. \def\binrel@@#1{\ifdim\wd2<\z@\mathbin{#1}\else\ifdim\wd\tw@>\z@
  1088.  \mathrel{#1}\else{#1}\fi\fi}
  1089. \newdimen\pmbraise@
  1090. \def\pmb@#1#2{\setbox4=\hbox{$\m@th#1{#2}$}%
  1091.  \setbox6=\hbox{$\m@th#1\mkern.7794mu$}\pmbraise@\wd6
  1092.  \binrel@{#2}\binrel@@{\mkern-.45mu\copy4 \kern-\wd4
  1093.  \mkern-.9mu\copy4 \kern-\wd4 \mkern-.45mu\raise\pmbraise@\box4}}
  1094. %\loadmsam
  1095. %\loadmsbm
  1096. %\loadeufm
  1097. \let\proclaim\undefined
  1098. \Invalid@\=
  1099. \let\+\relax
  1100. \Invalid@\+
  1101. \let\>\undefined
  1102. \let\cal\undefined
  1103. \let\mit\undefined
  1104. \let\oldstyle\undefined
  1105. \def\Err@#1{\errhelp\defaulthelp@\err@{#1}}
  1106. {\catcode`\@=\active
  1107.  \edef\next{\gdef\noexpand@{\futurelet\noexpand\next
  1108.   \csname at\string@\endcsname}}
  1109.  \next
  1110. }
  1111. \def\at@{\ifcat\noexpand\next a\let\next@\at@@\else
  1112.  \ifcat\noexpand\next0\let\next@\at@@\else
  1113.  \ifcat\noexpand\next\relax\let\next@\at@@\else
  1114.  \let\next@\at@@@\fi\fi\fi\next@}
  1115. \def\at@@@{\errhelp\athelp@\err@{Invalid use of @}}
  1116. \def\at@@#1{\expandafter
  1117.  \ifx\csname\string#1@at\endcsname\relax\let\next@\at@@@\else
  1118.  \DN@{\csname\string#1@at\endcsname}\fi\next@}
  1119. \let\lkerns@\relax
  1120. \def\nolinebreak{\RIfM@\mathmodeerr@\nolinebreak\else
  1121.  \ifhmode\saveskip@\lastskip\unskip
  1122.  \nobreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi\lkerns@
  1123.  \else\vmodeerr@\nolinebreak\fi\fi}
  1124. \def\allowlinebreak{\RIfM@\mathmodeerr@\allowlinebreak\else
  1125.  \ifhmode\saveskip@\lastskip\unskip
  1126.  \allowbreak\ifdim\saveskip@>\z@\hskip\saveskip@\fi\lkerns@
  1127.  \else\vmodeerr@\allowlinebreak\fi\fi}
  1128. \def\linebreak{\RIfM@\mathmodeerr@\linebreak\else
  1129.  \ifhmode\unskip\unkern\break\lkerns@
  1130.  \else\vmodeerr@\linebreak\fi\fi}
  1131. \let\nkerns@\relax
  1132. \def\newline{\RIfM@\mathmodeerr@\newline\else
  1133.  \ifhmode\unskip\unkern\null\hfill\break\nkerns@
  1134.  \else\vmodeerr@\newline\fi\fi}%
  1135. \def\newbox@{\alloc@@4\box\chardef\insc@unt}
  1136. \def\accentedsymbol#1#2{\expandafter\newbox@\csname\exstring@#1@box\endcsname
  1137.  \setbox\csname\exstring@#1@box\endcsname\hbox{$\m@th#2$}%
  1138.  \define#1{\copy\csname\exstring@#1@box\endcsname{}}}
  1139. \def\loop#1\repeat{\def\iterate{#1\relax\expandafter\iterate\fi}%
  1140.  \iterate\let\iterate\relax}
  1141. \def\gloop@#1\repeat{\gdef\body{#1}\iterate}
  1142. \def\tdots@{\unskip
  1143.  \DN@{$\m@th\mathinner{\ldotp\ldotp\ldotp}\,
  1144.    \ifx\next,\,$\else\ifx\next.\,$\else\ifx\next;\,$\else\ifx\next:\,$\else
  1145.    \ifx\next?\,$\else\ifx\next!\,$\else$ \fi\fi\fi\fi\fi\fi}%
  1146.  \ \FN@\next@}
  1147. \def\extrap@#1{%
  1148.  \ifx\next,\DN@{#1\,}\else
  1149.  \ifx\next;\DN@{#1\,}\else
  1150.  \ifx\next.\DN@{#1\,}\else\extra@
  1151.  \ifextra@\DN@{#1\,}\else
  1152.  \let\next@#1\fi\fi\fi\fi\next@}
  1153. \def\dotsc{\DN@{\ifx\next;\plainldots@\,\else
  1154.   \ifx\next.\plainldots@\,\else\extra@\plainldots@
  1155.   \ifextra@\,\fi\fi\fi}%
  1156.  \FN@\next@}
  1157. \def\keybin@{\keybin@true
  1158.  \ifx\next+\else\ifx\next=\else\ifx\next<\else\ifx\next>\else\ifx\next-\else
  1159.  \ifx\next*\else\ifx\next:\else\keybin@false\fi\fi\fi\fi\fi\fi\fi}
  1160. \font\tensmc=cmcsc10
  1161. \textonlyfont@\smc\tensmc
  1162. \def\boldkey#1{\ifcat\noexpand#1A%
  1163.   \ifcmmibloaded@{\fam\cmmibfam#1}\else
  1164.    \Err@{First bold symbol font not loaded}\fi
  1165.  \else
  1166.  \ifx#1!\mathchar"5\bffam@21 \else
  1167.  \ifx#1(\mathchar"4\bffam@28 \else\ifx#1)\mathchar"5\bffam@29 \else
  1168.  \ifx#1+\mathchar"2\bffam@2B \else\ifx#1:\mathchar"3\bffam@3A \else
  1169.  \ifx#1;\mathchar"6\bffam@3B \else\ifx#1=\mathchar"3\bffam@3D \else
  1170.  \ifx#1?\mathchar"5\bffam@3F \else\ifx#1[\mathchar"4\bffam@5B \else
  1171.  \ifx#1]\mathchar"5\bffam@5D \else
  1172.  \ifx#1,\mathchari@63B \else
  1173.  \ifx#1-\mathcharii@200 \else
  1174.  \ifx#1.\mathchari@03A \else
  1175.  \ifx#1/\mathchari@03D \else
  1176.  \ifx#1<\mathchari@33C \else
  1177.  \ifx#1>\mathchari@33E \else
  1178.  \ifx#1*\mathcharii@203 \else
  1179.  \ifx#1|\mathcharii@06A \else
  1180.  \ifx#10\bold0\else\ifx#11\bold1\else\ifx#12\bold2\else\ifx#13\bold3\else
  1181.  \ifx#14\bold4\else\ifx#15\bold5\else\ifx#16\bold6\else\ifx#17\bold7\else
  1182.  \ifx#18\bold8\else\ifx#19\bold9\else
  1183.   \Err@{\string\boldkey\space can't be used with #1}%
  1184.  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  1185.  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
  1186. \def\root{%
  1187.   \DN@{\ifx\next\uproot\let\next@\nextii@\else
  1188.    \ifx\next\leftroot\let\next@\nextiii@\else
  1189.    \let\next@\plainroot@\fi\fi\next@}%
  1190.   \DNii@\uproot##1{\uproot@##1\relax\FNSS@\nextiv@}%
  1191.   \def\nextiv@{\ifx\next\leftroot\let\next@\nextv@\else
  1192.    \let\next@\plainroot@\fi\next@}%
  1193.   \def\nextv@\leftroot##1{\leftroot@##1\relax\plainroot@}%
  1194.   \def\nextiii@\leftroot##1{\leftroot@##1\relax\FNSS@\nextvi@}%
  1195.   \def\nextvi@{\ifx\next\uproot\let\next@\nextvii@\else
  1196.    \let\next@\plainroot@\fi\next@}%
  1197.   \def\nextvii@\uproot##1{\uproot@##1\relax\plainroot@}%
  1198.   \bgroup\uproot@\z@\leftroot@\z@
  1199.  \FNSS@\next@}
  1200. \def\arabic#1{#1}
  1201. \def\alph#1{\count@#1\relax\advance\count@96 \ifnum\count@>122
  1202.  \Err@{\string\alph\space can't be used for numbers > 26}\else\char\count@\fi}
  1203. \def\Alph#1{\count@#1\relax\advance\count@64 \ifnum\count@>90
  1204.  \Err@{\string\Alph\space can't be used for numbers > 26}\else\char\count@\fi}
  1205. \def\roman#1{\romannumeral#1\relax}
  1206. \def\Roman#1{\uppercase\expandafter{\romannumeral#1}}
  1207. \def\fnsymbol#1{\count@#1\relax
  1208.  \count@@\count@
  1209.  \advance\count@\m@ne\divide\count@7
  1210.  \count@@@\count@\advance\count@@@\@ne
  1211.  \multiply\count@7 \advance\count@@-\count@
  1212.  \count@\count@@@
  1213.  {\loop
  1214.   \ifcase\count@@\or*\or\dag\or\ddag\or\P\or\S\or\text{$\|$}\or\#\fi
  1215.   \advance\count@\m@ne\ifnum\count@>\z@\repeat}}
  1216. \def\cardnine@#1{\ifcase#1\or one\or two\or three\or four\or five\or
  1217.  six\or seven\or eight\or nine\fi}
  1218. \newcount\ten@
  1219. \ten@10
  1220. \def\cardinal#1{\count@#1\relax
  1221.  \ifnum\count@>99 \number\count@
  1222.  \else
  1223.   \ifnum\count@=\z@ zero%
  1224.   \else
  1225.    \ifnum\count@<\ten@\cardnine@\count@
  1226.    \else
  1227.     \ifnum\count@<20
  1228.      \advance\count@-\ten@
  1229.      \ifcase\count@ ten\or eleven\or twelve\or thirteen\or fourteen\or
  1230.       fifteen\or sixteen\or seventeen\or eighteen\or nineteen\fi
  1231.     \else
  1232.      \count@@\count@\count@@@\count@@
  1233.      \divide\count@\ten@\multiply\count@\ten@
  1234.      \advance\count@@@-\count@\divide\count@\ten@
  1235.      \ifcase\count@\or\or twenty\or thirty\or forty\or fifty\or sixty\or
  1236.       seventy\or eighty\or ninety\fi
  1237.      \ifnum\count@@@=\z@\else-\cardnine@\count@@@\fi
  1238.     \fi
  1239.    \fi
  1240.   \fi
  1241.  \fi}
  1242. \def\ordnine@#1{\ifcase#1\or first\or second\or third\or fourth\or fifth\or
  1243.  sixth\or seventh\or eighth\or ninth\fi}
  1244. \newcount\count@@@@
  1245. \def\ordsuffix@{\count@@@@\count@
  1246.  \divide\count@\ten@
  1247.  \count@@@\count@\count@@\count@
  1248.  \divide\count@@\ten@\multiply\count@@\ten@
  1249.  \advance\count@@@-\count@@
  1250.  \ifnum\count@@@=\@ne th%
  1251.  \else
  1252.   \count@@@\count@@@@
  1253.   \count@@\count@@@@
  1254.   \divide\count@@\ten@\multiply\count@@\ten@
  1255.   \advance\count@@@-\count@@
  1256.   \ifcase\count@@@ th\or st\or nd\or rd\else th\fi
  1257.  \fi}
  1258. \def\nordinal#1{\count@#1\relax\number\count@\ordsuffix@}
  1259. \def\spordinal#1{\count@#1\relax\number\count@$^{\text{\ordsuffix@}}$}
  1260. \def\ordinal#1{\count@#1\relax
  1261.  \ifnum\count@>99 \number\count@\ordsuffix@
  1262.  \else
  1263.    \ifnum\count@=\z@ zeroth%
  1264.   \else
  1265.     \ifnum\count@<\ten@\ordnine@\count@
  1266.     \else
  1267.      \ifnum\count@<20 \advance\count@-\ten@
  1268.       \ifcase\count@ tenth\or eleventh\or twelfth\or thirteenth\or
  1269.        fourteenth\or fifteenth\or sixteenth\or seventeenth\or eighteenth\or
  1270.        nineteenth\fi
  1271.      \else
  1272.       \count@@\count@
  1273.       \divide\count@\ten@\multiply\count@\ten@
  1274.       \count@@@\count@@\advance\count@@@-\count@
  1275.       \divide\count@\ten@
  1276.       \ifcase\count@\or\or twent\or thirt\or fort\or fift\or sixt\or sevent\or
  1277.        eight\or ninet\fi
  1278.       \ifnum\count@@@=\z@ ieth\else y-\ordnine@\count@@@\fi
  1279.      \fi
  1280.     \fi
  1281.   \fi
  1282.  \fi}
  1283. \font\tensmc=cmcsc10
  1284. \textonlyfont@\smc\tensmc
  1285. \newtoks\noexpandtoks@
  1286. \noexpandtoks@{\let\arabic\relax\let\alph\relax\let\Alph\relax
  1287.  \let\roman\relax\let\Roman\relax\let\fnsymbol\relax\let\rm\relax
  1288.  \let\it\relax\let\bf\relax\let\sl\relax\let\smc\relax
  1289.  \let\/\relax\let\null\relax}
  1290. \def\noexpands@{\the\noexpandtoks@}
  1291. \def\Nonexpanding#1{\global\noexpandtoks@
  1292.  \expandafter{\the\noexpandtoks@\let#1\relax}}
  1293. \Invalid@\label
  1294. \Invalid@\pagelabel
  1295. \newread\laxread@
  1296. \def\Finit@#1#2\Finit@{\let\nextii@#1\def\nextiii@{#2}}
  1297. \catcode`\~=11
  1298. \def\getparts@ @#1~#2~#3~#4~#5~#6{\def\nextiv@{#1}%
  1299.  \def\nextiii@{#2~#3~#4~#5~}\count@#6\relax}
  1300. \newif\ifreferr@
  1301. \referr@true
  1302. \def\RefErrors{\global\referr@true}
  1303. \def\RefWarnings{\global\referr@false}
  1304. \setbox\z@\hbox{\global\count@=`^^30}
  1305. \ifnum\count@=48 \let\versionthree@\relax\fi
  1306. \def\nolabel@#1#2#3{\expandafter\ifx\csname#2@L\endcsname\relax
  1307.  \ifreferr@\Err@{No \noexpand\label found for #2}\else
  1308.  \W@{Warning: No \noexpand\label found for #2.}%
  1309.  \ifx\versionthree@\relax\W@{l.\number\inputlineno\space ... \string#1{#2}}\fi
  1310.  \fi#3\else}
  1311. \def\csL@#1{{\noexpands@\xdef\Next@{\csname#1@L\endcsname}}}
  1312. \define\ref#1{\nolabel@\ref{#1}\relax
  1313.  \DNii@##1~##2\nextii@{##1}%
  1314.  \csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
  1315. \define\Ref#1{\nolabel@\Ref{#1}\relax
  1316.  \DNii@##1~##2~##3\nextii@{##2}%
  1317.  \csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
  1318. \define\nref#1{\nolabel@\nref{#1}\relax
  1319.  \DNii@##1~##2~##3~##4\nextii@{##3}%
  1320.  \csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
  1321. \define\pref#1{\nolabel@\pref{#1}\relax
  1322.  \DNii@##1~##2~##3~##4~##5\nextii@{##4}%
  1323.  \csL@{#1}\expandafter\nextii@\Next@\nextii@\fi}
  1324. \def\Evaluatenref#1{\nolabel@\Evaluatenref{#1}{\gdef\Nref{-10000 }}%
  1325.  \DNii@##1~##2~##3~##4\nextii@{\DNii@{##3}}%
  1326.  \csL@{#1}\expandafter\nextii@\Next@\nextii@
  1327.  \xdef\Nref{\nextii@}\fi}
  1328. \def\Evaluatepref#1{\nolabel@\Evaluatepref{#1}{\global\let\Pref\empty}%
  1329.  \DNii@##1~##2~##3~##4~##5\nextii@{\DNii@{##4}}%
  1330.  \csL@{#1}\expandafter\nextii@\Next@\nextii@
  1331.  \xdef\Pref{\nextii@}\fi}
  1332. \def\readlax#1{\immediate\openin\laxread@=#1.lax\relax
  1333.  \ifeof\laxread@\W@{}\W@{File #1.lax not found.}\W@{}\fi
  1334.  {\endlinechar\m@ne\noexpands@\catcode`\@=11 \catcode`\~=11
  1335.   \loop\ifeof\laxread@\else
  1336.    \read\laxread@ to\nextv@
  1337.    \ifx\nextv@\empty
  1338.    \else
  1339.     \expandafter\Finit@\nextv@\Finit@
  1340.     \ifx\nextii@ F%
  1341.     \else
  1342.      \expandafter\getparts@\nextv@
  1343.      \expandafter\ifx\csname\nextiv@ @L\endcsname\relax
  1344.       \edef\next@{\gdef\csname\nextiv@ @L\endcsname
  1345.        {\nextiii@\ifnum\count@=\@ne0\else2\fi}}%
  1346.       \next@
  1347.      \else
  1348.       \Err@{Label \nextiv@\space in #1.lax already used}%
  1349.      \fi
  1350.     \fi
  1351.    \fi
  1352.   \repeat}%
  1353.  \immediate\closein\laxread@}
  1354. \catcode`\~=\active
  1355. \def\tbldocstyle#1{\input #1.stt\relax}
  1356. \newwrite\writedata@
  1357. \newif\ifshow@
  1358. \pageno\z@
  1359. \def\document{\immediate\openout\writedata@=\jobname.dat
  1360.  \global\font\t@nrm=cmr10
  1361.  \global\topskip\z@
  1362.  \global\output{\ifshow@\else\advancepageno\fi
  1363.  \shipout\vbox{\vbox to\vsize{\unvbox255 }%
  1364.  \baselineskip2pc
  1365.  \ifshow@
  1366.  \line{\hfil\t@nrm File [\jobname], Subtable \number\count@@\hfil}%
  1367.  \else
  1368.  \line{\hfil\t@nrm File [\jobname], \#\number\pageno\hfil}\fi}%
  1369.  }}
  1370. \def\bye{\par\vfill\supereject\end}
  1371. \let\enddocument\bye
  1372. \def\exstring@{\expandafter\eat@\string}
  1373. \def\unpurge#1{\input #1\relax}
  1374. \def\purge#1{\input #1.tox\relax}
  1375. \def\East#1#2{\setboxz@h{$\m@th\ssize\;{#1}\;\;$}%
  1376.  \setbox\tw@\hbox{$\m@th\ssize\;{#2}\;\;$}\setbox4=\hbox{$\m@th#2$}%
  1377.  \dimen@\minaw@
  1378.  \ifdim\wdz@>\dimen@\dimen@\wdz@\fi\ifdim\wd\tw@>\dimen@\dimen@\wd\tw@\fi
  1379.  \ifdim\wd4 >\z@
  1380.   \mathrel{\mathop{\hbox to\dimen@{\rightarrowfill}}\limits^{#1}_{#2}}%
  1381.  \else
  1382.   \mathrel{\mathop{\hbox to\dimen@{\rightarrowfill}}\limits^{#1}}%
  1383.  \fi}
  1384. \def\West#1#2{\setboxz@h{$\m@th\ssize\;\;{#1}\;$}%
  1385.  \setbox\tw@\hbox{$\m@th\ssize\;\;{#2}\;$}\setbox4=\hbox{$\m@th#2$}%
  1386.  \dimen@\minaw@
  1387.  \ifdim\wdz@>\dimen@\dimen@\wdz@\fi\ifdim\wd\tw@>\dimen@\dimen@\wd\tw@\fi
  1388.  \ifdim\wd4 >\z@
  1389.   \mathrel{\mathop{\hbox to\dimen@{\leftarrowfill}}\limits^{#1}_{#2}}%
  1390.  \else
  1391.   \mathrel{\mathop{\hbox to\dimen@{\leftarrowfill}}\limits^{#1}}%
  1392.  \fi}
  1393. \Invalid@\paste
  1394. \newtoks\ET@
  1395. \def\everytable#1{\ET@{#1}}
  1396. \def\VTW@{.4\p@}
  1397. \def\vtablelines(#1){\def\VTW@{#1}}
  1398. \def\HTW@{.4\p@}
  1399. \def\htablelines(#1){\def\HTW@{#1}}
  1400. \def\Ls@{\z@}
  1401. \def\Rs@{\z@}
  1402. \def\sides{\def\Ls@{\VTW@}\def\Rs@{\VTW@}}
  1403. \def\Sides(#1#2;#3#4){\if#1*\def\Ls@{\VTW@}\else\def\Ls@{#1#2}\fi
  1404.  \if#3*\def\Rs@{\VTW@}\else\def\Rs@{#3#4}\fi}
  1405. \newif\ifTW@
  1406. \newif\ifTWG@
  1407. \newif\ifTWL@
  1408. \def\tablewidth(#1#2){\TW@true\TWG@false\TWL@false\if#1+\TWG@true
  1409.  \def\TW@{#2}\else\if#1-\TWL@true\def\TW@{#2}\else\def\TW@{#1#2}\fi\fi}
  1410. \newbox\LBX@
  1411. \newbox\RBX@
  1412. \def\table{\the\ET@\edef\PRF@{\the\font}\MS@\MNBL@\edef\TF@{\the\font}%
  1413.  \begingroup\catcode`\&\active\catcode`\"\active\catcode`\|\active
  1414.  \expandafter\let\csname +\endcsname\relax\csname table \endcsname}
  1415. \def\MNBL@{\xdef\NBL@{\lineskip\the\lineskip\baselineskip\the\baselineskip
  1416.  \lineskiplimit\the\lineskiplimit}}
  1417. \expandafter\newbox\csname table0\endcsname
  1418. \expandafter\newbox\csname table1\endcsname
  1419. \expandafter\newbox\csname table2\endcsname
  1420. \expandafter\newbox\csname table3\endcsname
  1421. \expandafter\newbox\csname table4\endcsname
  1422. \expandafter\newbox\csname table5\endcsname
  1423. \expandafter\newbox\csname table6\endcsname
  1424. \expandafter\newbox\csname table7\endcsname
  1425. \expandafter\newbox\csname table8\endcsname
  1426. \expandafter\newbox\csname table9\endcsname
  1427. \newif\ifstoring@
  1428. \def\storetable#1{\storing@true\count@#1\relax
  1429.  \edef\thetable@{\number\count@}\table}
  1430. \def\usetable#1{\count@#1\relax\copy\csname table\number\count@\endcsname}
  1431. \def\showstored#1{%
  1432.  \ifvoid\csname table#1\endcsname
  1433.   \Err@{No table stored in location #1}%
  1434.  \else
  1435.   \count@@=#1\relax\DN@{\csname table#1\endcsname}%
  1436.   \dimen@\ht\next@ \advance\dimen@\dp\next@
  1437.   \ifdim\dimen@>\vsize\Err@{Subtable bigger than \string\vsize: height
  1438.    \the\ht\next@, depth \the\dp\next@}\fi
  1439.   \count@\pageno \pageno\z@
  1440.   \hrule\height\z@\vskip\vsize\noindent\smash{\copy\next@}%
  1441.   \show@true\eject \pageno\count@ \show@false
  1442.  \fi}
  1443. \def\cleartable#1{\count@#1\relax
  1444.  \global\setbox\csname table\number\count@\endcsname\box\voidb@x}
  1445. \newdimen\FSH
  1446. \newdimen\FSD
  1447. \newdimen\HT@
  1448. \newdimen\DP@
  1449. \newdimen\EH@
  1450. \newdimen\ED@
  1451. \EH@\z@
  1452. \ED@\z@
  1453. \newif\ifHD@
  1454. \newif\ifEH@
  1455. \newif\ifED@
  1456. \def\HD(#1#2;#3#4){\HD@true
  1457.  \if#1+\EH@#2\relax\EH@true\else\EH@#1#2\relax\EH@false\fi
  1458.  \if#3+\ED@#4\relax\ED@true\else\ED@#3#4\relax\ED@false\fi}
  1459. \def\MS@{{\setboxz@h{\count@\z@\loop\char\count@\ifnum\count@<127
  1460.   \advance\count@\@ne\repeat}%
  1461.  \global\HT@\ht\z@\global\DP@\dp\z@
  1462.  \ifHD@
  1463.   \ifEH@\dimen@\HT@\advance\dimen@\EH@\else\dimen@\EH@\fi
  1464.   \ifED@\dimen@ii\DP@\advance\dimen@ii\ED@\else\dimen@ii\ED@\fi
  1465.  \else
  1466.   \dimen@\HT@\dimen@ii\DP@
  1467.  \fi
  1468.  \global\FSH\dimen@ \global\FSD\dimen@ii
  1469.  \xdef\FS@{\leavevmode\vrule\height\the\dimen@\depth\the\dimen@ii\width\z@}%
  1470.  \xdef\FS@@{\leavevmode\vrule\height\the\ht\z@\depth\the\dp\z@\width\z@}%
  1471.  \global\let\FS\FS@}}
  1472. \def\showstrutdims{\MS@
  1473.  \immediate\write\sixt@@n{Strut height = \the\HT@; strut depth = \the\DP@}}
  1474. \newif\ifLG@
  1475. \newcount\CN@
  1476. \newcount\CT@
  1477. \newcount\SCT@
  1478. \newif\ifFS@
  1479. \def\LGL@{}
  1480. \def\RGL@{}
  1481. \def\LSL@{}
  1482. \def\RSL@{}
  1483. \let\T@B=&
  1484. \newcount\DCC@
  1485. \newcount\DLC@
  1486. \newif\ifNS@
  1487. \newif\ifAD@
  1488. \def\alldq{\AD@true}
  1489. \newskip\FT@
  1490. \newskip\LT@
  1491. \def\tss{\Err@{\string\tss\space doesn't follow a \string\table}}
  1492. \def\sss{\Err@{\string\sss\space doesn't follow a \string\tss...\string\\}}
  1493. {
  1494. \catcode`\&\active \catcode`\|\active \catcode`\"\active
  1495. \gdef\pretss@#1{{\let&0\let|0\let\rt0\let\s0\let\g0\let\|0%
  1496.  \let\p0\let\P0\let\d0\let\$0%
  1497.  \let\next@0%
  1498.  \def\l{\l@\next@}\def\c{\c@\next@}\def\r{\r@\next@}%
  1499.  \def\L{\L@}\def\C{\C@}\def\R{\R@}%
  1500.  \let\lmath@0\let\cmath@0\let\rmath@0\let\lMath@0\let\cMath@0\let\rMath@0%
  1501.  \def\lmath{\lmath@\next@}\def\cmath{\cmath@\next@}\def\rmath{\rmath@\next@}%
  1502.  \def\lMath{\lMath@\next@}\def\cMath{\cMath@\next@}\def\rMath{\rMath@\next@}%
  1503.  \def~{\s1\ignorespaces}%
  1504.  \let\LP@0\let\CP@0\let\RP@0%
  1505.  \let\lP@0\let\cP@0\let\rP@0%
  1506.  \ifAD@
  1507.   \def\l@{\lP@\next@}\def\c@{\cP@\next@}\def\r@{\rP@\next@}%
  1508.   \def\L@{\LP@}\def\C@{\CP@}\def\R@{\RP@}\def"{}%
  1509.   \def\"##1{\ifx##1\l\noexpand\l@\next@\else\ifx##1\c\noexpand\c@\next@\else
  1510.    \ifx##1\r\noexpand\r@\next@\else\ifx##1\L\noexpand\L@\else
  1511.    \ifx##1\C\noexpand\C@\else\ifx##1\R\noexpand\R@\else##1\fi\fi\fi\fi\fi\fi}%
  1512.  \else
  1513.   \let\l@0\let\c@0\let\r@0\let\L@0\let\C@0\let\R@0\def\"{}%
  1514.   \def"##1{\ifx##1\l\lP@\next@\else\ifx##1\c\cP@\next@\else
  1515.    \ifx##1\r\rP@\next@\else\ifx##1\L\LP@\else\ifx##1\C\CP@\else\ifx##1\R\RP@
  1516.    \else##1\fi\fi\fi\fi\fi\fi}%
  1517.  \fi
  1518.  \xdef\PPR@{#1}}}
  1519. \expandafter\gdef\csname table \endcsname#1\tss#2\\{\pretss@{#2}%
  1520.  {\let&0\let|0\let\rt0\let\s0\let\g0\let\|0%
  1521.   \let\p0\let\P0\let\d0\let\$0%
  1522.   \let\next@0%
  1523.   \let\l@0\let\c@0\let\r@0%
  1524.   \let\L@0\let\C@0\let\R@0%
  1525.   \let\lmath@0\let\cmath@0\let\rmath@0\let\lMath@0\let\cMath@0\let\rMath@0%
  1526.   \let\LP@0\let\CP@0\let\RP@0%
  1527.   \let\lP@0\let\cP@0\let\rP@0%
  1528.   \gdef\PR@{}%
  1529.   \expandafter\SC@\PPR@\rt Z%
  1530.  }%
  1531.  \gdef\SS@{B}\gdef\LS@{B}\catcode`\"12
  1532.  \FN@\dt@}
  1533. \gdef\SC@#1\rt{\xdef\PR@{\PR@#1}\FN@\SC@@}
  1534. \gdef\SC@@{\ifx\next Z\DNii@ Z{}\else\let\nextii@\SC@@@\fi\nextii@}
  1535. \gdef\SC@@@#1#2{\count@#1\relax\loop\ifnum\count@>\z@
  1536.  \xdef\PR@{\PR@#2}\advance\count@\m@ne\repeat\SC@}
  1537. \catcode`\"12
  1538. \gdef\dt@{\ifx\next\space@\DN@. {\FN@\dt@@}\else
  1539.  \DN@.{\FN@\dt@@}\fi\next@.}
  1540. \gdef\dt@@{\NS@true\ifx\next\sss\expandafter\dt@@@\else
  1541.  \expandafter\dt@@@@\fi}
  1542. \gdef\dt@@@\sss#1\\{%
  1543.  {\let\t0\let\m0\let\b0%
  1544.   \if Z#1Z%
  1545.   \else
  1546.    \def\t{\global\NS@false\gdef\LS@{T}}%
  1547.    \def\m{\global\NS@false\gdef\LS@{M}}%
  1548.    \def\b{\gdef\LS@{B}}%
  1549.    \setboxz@h{#1}%
  1550.    \def\t{T}\def\m{M}\def\b{B}\xdef\SS@{#1}%
  1551.  \fi}%
  1552.  \dt@@@@}
  1553. \gdef\dt@@@@{%
  1554.  {\DN@{}%
  1555.   \let\l@\LG@false\let\c@\LG@false\let\r@\LG@false
  1556.   \let\lP@\LG@false\let\cP@\LG@false\let\rP@\LG@false
  1557.   \let\lmath@\LG@false\let\cmath@\LG@false\let\rmath@\LG@false
  1558.   \let\lMath@\LG@false\let\cMath@\LG@false\let\rMath@\LG@false
  1559.   \def\L@##1{\LG@false}\def\C@##1{\LG@false}\def\R@##1{\LG@false}%
  1560.   \def\LP@##1{\LG@false}\def\CP@##1{\LG@false}\def\RP@##1{\LG@false}%
  1561.   \def\p(##1){\LG@false}\def\P(##1)##2{\LG@false}%
  1562.   \def\d##1{\LG@false}\def\$##1{\LG@false}%
  1563.   \def&{\LG@true\FS@false\global\LT@\z@\global\advance\CN@\@ne}%
  1564.   \def\|(##1){\LG@true\FS@false\global\LT@\z@\global\advance\CN@\@ne}%
  1565.   \def\g(##1){\dimen@##1\relax
  1566.    \ifLG@\xdef\LGL@{\LGL@ Z\the\CN@"\the\dimen@}\else
  1567.    \xdef\RGL@{\RGL@ Z\the\CN@"\the\dimen@}\fi}%
  1568.   \def\s##1{%
  1569.    \ifLG@
  1570.     \ifFS@\global\FT@\z@ plus##1fil minus##1fil\FS@false\fi
  1571.     \xdef\LSL@{\LSL@ Z\the\CN@"##1}%
  1572.    \else
  1573.     \global\LT@\z@ plus##1fil minus##1fil
  1574.     \xdef\RSL@{\RSL@ Z\the\CN@"##1}%
  1575.    \fi
  1576.    \global\advance\SCT@##1\relax}%
  1577.   \CN@\@ne\LG@true\FS@true\SCT@\z@\FT@\z@\relax\LT@\z@\relax
  1578.   \setboxz@h{\PR@}%
  1579.   \global\CT@\CN@
  1580.   \def\l@{\LB@{\the\hashtoks@}}\def\c@{\CB@{\the\hashtoks@}}%
  1581.   \def\r@{\RB@{\the\hashtoks@}}%
  1582.   \def\lP@{\LBP@{\the\hashtoks@}}\def\cP@{\CBP@{\the\hashtoks@}}%
  1583.   \def\rP@{\RBP@{\the\hashtoks@}}%
  1584.   \let\lmath@\l@\let\cmath@\c@\let\rmath@\r@
  1585.   \let\lMath@\l@\let\cMath@\c@\let\rMath@\r@
  1586.   \def\L@##1{\l@}\def\C@##1{\c@}\def\R@##1{\r@}%
  1587.   \def\LP@##1{\l@}\def\CP@##1{\c@}\def\RP@##1{\r@}%
  1588.   \def\p(##1){\PB@{##1}{\the\hashtoks@}}%
  1589.   \def\P(##1)##2{\PB@{##1}{\the\hashtoks@}}%
  1590.   \def\d##1{\DB@{\the\hashtoks@}}\def\$##1{\DL@{\the\hashtoks@}}%
  1591.   \def&{\T@B\csname table \space\space\space\endcsname\the\hashtoks@\T@B}%
  1592.   \def\|(##1){\T@B\VR@@{##1}\the\hashtoks@\T@B}%
  1593.   \let\LB@0\let\CB@0\let\RB@0%
  1594.   \let\LBP@0\let\CBP@0\let\RBP@0%
  1595.   \let\PB@0%
  1596.   \let\DB@0\let\DL@0%
  1597.   \expandafter\let\csname table \space\space\space\endcsname0%
  1598.   \let\VR@@0%
  1599.   \let\g0\let\s0%
  1600.   \xdef\pR@@{\PR@}%
  1601.   \def\lmath@{\MLB@{\the\hashtoks@}\ignorespaces}%
  1602.   \def\cmath@{\MCB@{\the\hashtoks@}\ignorespaces}%
  1603.   \def\rmath@{\MRB@{\the\hashtoks@}\ignorespaces}%
  1604.   \def\lMath@{\CMLB@{\the\hashtoks@}\ignorespaces}%
  1605.   \def\cMath@{\CMCB@{\the\hashtoks@}\ignorespaces}%
  1606.   \def\rMath@{\CMRB@{\the\hashtoks@}\ignorespaces}%
  1607.   \def\L@##1{\CLB@{##1}{\the\hashtoks@}\ignorespaces}%
  1608.   \def\C@##1{\CCB@{##1}{\the\hashtoks@}\ignorespaces}%
  1609.   \def\R@##1{\CRB@{##1}{\the\hashtoks@}\ignorespaces}%
  1610.   \def\LP@##1{\CLBP@{##1}{\the\hashtoks@}\ignorespaces}%
  1611.   \def\CP@##1{\CCBP@{##1}{\the\hashtoks@}\ignorespaces}%
  1612.   \def\RP@##1{\CRBP@{##1}{\the\hashtoks@}\ignorespaces}%
  1613.   \def\p(##1){\PB@{##1}{\the\hashtoks@}}%
  1614.   \def\P(##1)##2{\CPB@{##1}{##2}{\the\hashtoks@}}%
  1615.   \def\d##1{\DBB@{##1}{\the\hashtoks@}}%
  1616.   \def\$##1{\DLL@{##1}{\the\hashtoks@}}%
  1617.   \def&{\T@B\csname table \space\space\space\endcsname\the\hashtoks@\T@B}%
  1618.   \def\|(##1){\T@B\VR@@{##1}\the\hashtoks@\T@B}%
  1619.   \let\LB@0\let\CB@0\let\RB@0%
  1620.   \let\PB@0\let\CPB@0%
  1621.   \let\DBB@0%
  1622.   \let\DLL@0%
  1623.   \let\CLB@0\let\CCB@0\let\CRB@0%
  1624.   \let\CLBP@0\let\CCBP@0\let\CRBP@0%
  1625.   \let\MLB@0\let\MCB@0\let\MRB@0%
  1626.   \let\CMLB@0\let\CMCB@0\let\CMRB@0%
  1627.   \expandafter\let\csname table \space\space\space\endcsname0%
  1628.   \let\VR@@0%
  1629.   \let\g0\let\s0%
  1630.   \xdef\PR@@{\PR@}%
  1631.   \def&##1##2{%
  1632.    \ifx##1\s
  1633.     \T@B\tabskip\z@\noexpand\relax
  1634.     \csname table \space\space\space\endcsname\the\hashtoks@
  1635.     \tabskip\z@ plus##2fil minus##2fil\T@B
  1636.    \else
  1637.     \T@B\tabskip\z@\noexpand\relax
  1638.     \csname table \space\space\space\endcsname\the\hashtoks@\T@B
  1639.    \ifx##1\L@\L@{##2}\else\ifx##1\C@\C@{##2}\else\ifx##1\R@\R@{##2}\else
  1640.    \ifx##1\LP@\LP@{##2}\else\ifx##1\CP@\CP@{##2}\else\ifx##1\RP@\RP@{##2}\else
  1641.    \ifx##1\p\p{##2}\else\ifx##1\P\P{##2}\else\ifx##1\d\d{##2}\else
  1642.    \ifx##1\$\${##2}\else##1##2\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}%
  1643.   \def\s##1{\tabskip\z@ plus##1fil minus##1fil\noexpand\relax\noexpand
  1644.    \ignorespaces}%
  1645.   \xdef\PR@@@{\PR@\empty}%
  1646.  }%
  1647.  \def\g(##1){\hskip##1\relax\ignorespaces}%
  1648.  \catcode`\&=4 \MC@\DV@\VT@}
  1649. }
  1650. \expandafter\newdimen\csname c-1l\endcsname
  1651. \expandafter\newdimen\csname c-2l\endcsname
  1652. \expandafter\newdimen\csname c-3l\endcsname
  1653. \expandafter\newdimen\csname c-4l\endcsname
  1654. \expandafter\newdimen\csname c-5l\endcsname
  1655. \expandafter\newdimen\csname c-6l\endcsname
  1656. \expandafter\newdimen\csname c-7l\endcsname
  1657. \expandafter\newdimen\csname c-8l\endcsname
  1658. \expandafter\newdimen\csname c-9l\endcsname
  1659. \expandafter\newdimen\csname c-10l\endcsname
  1660. \expandafter\newdimen\csname c-11l\endcsname
  1661. \expandafter\newdimen\csname c-12l\endcsname
  1662. \expandafter\newdimen\csname c-13l\endcsname
  1663. \expandafter\newdimen\csname c-14l\endcsname
  1664. \expandafter\newdimen\csname c-15l\endcsname
  1665. \expandafter\newdimen\csname c-16l\endcsname
  1666. \expandafter\newdimen\csname c-17l\endcsname
  1667. \expandafter\newdimen\csname c-18l\endcsname
  1668. \expandafter\newdimen\csname c-19l\endcsname
  1669. \expandafter\newdimen\csname c-20l\endcsname
  1670. \expandafter\newdimen\csname c-1c\endcsname
  1671. \expandafter\newdimen\csname c-2c\endcsname
  1672. \expandafter\newdimen\csname c-3c\endcsname
  1673. \expandafter\newdimen\csname c-4c\endcsname
  1674. \expandafter\newdimen\csname c-5c\endcsname
  1675. \expandafter\newdimen\csname c-6c\endcsname
  1676. \expandafter\newdimen\csname c-7c\endcsname
  1677. \expandafter\newdimen\csname c-8c\endcsname
  1678. \expandafter\newdimen\csname c-9c\endcsname
  1679. \expandafter\newdimen\csname c-10c\endcsname
  1680. \expandafter\newdimen\csname c-11c\endcsname
  1681. \expandafter\newdimen\csname c-12c\endcsname
  1682. \expandafter\newdimen\csname c-13c\endcsname
  1683. \expandafter\newdimen\csname c-14c\endcsname
  1684. \expandafter\newdimen\csname c-15c\endcsname
  1685. \expandafter\newdimen\csname c-16c\endcsname
  1686. \expandafter\newdimen\csname c-17c\endcsname
  1687. \expandafter\newdimen\csname c-18c\endcsname
  1688. \expandafter\newdimen\csname c-19c\endcsname
  1689. \expandafter\newdimen\csname c-20c\endcsname
  1690. \expandafter\newdimen\csname c-1r\endcsname
  1691. \expandafter\newdimen\csname c-2r\endcsname
  1692. \expandafter\newdimen\csname c-3r\endcsname
  1693. \expandafter\newdimen\csname c-4r\endcsname
  1694. \expandafter\newdimen\csname c-5r\endcsname
  1695. \expandafter\newdimen\csname c-6r\endcsname
  1696. \expandafter\newdimen\csname c-7r\endcsname
  1697. \expandafter\newdimen\csname c-8r\endcsname
  1698. \expandafter\newdimen\csname c-9r\endcsname
  1699. \expandafter\newdimen\csname c-10r\endcsname
  1700. \expandafter\newdimen\csname c-11r\endcsname
  1701. \expandafter\newdimen\csname c-12r\endcsname
  1702. \expandafter\newdimen\csname c-13r\endcsname
  1703. \expandafter\newdimen\csname c-14r\endcsname
  1704. \expandafter\newdimen\csname c-15r\endcsname
  1705. \expandafter\newdimen\csname c-16r\endcsname
  1706. \expandafter\newdimen\csname c-17r\endcsname
  1707. \expandafter\newdimen\csname c-18r\endcsname
  1708. \expandafter\newdimen\csname c-19r\endcsname
  1709. \expandafter\newdimen\csname c-20r\endcsname
  1710. \def\MC@{%
  1711.  \ifnum\CT@>20
  1712.   \count@\@cclv \advance\count@-\count11
  1713.   \divide\count@\thr@@ \advance\count@20
  1714.   \ifnum\count@<\CT@
  1715.    \Err@{You can't have more than \number\count@\space columns}%
  1716.   \else
  1717.    \mscount\CT@
  1718.    \loop\ifnum\mscount>20
  1719.     \advance\count11by\@ne\ch@ck1\insc@unt\dimen\allocationnumber=\count11
  1720.     \expandafter\dimendef\csname c-\number\mscount l\endcsname
  1721.      =\allocationnumber
  1722.     \advance\count11by\@ne\ch@ck1\insc@unt\dimen\allocationnumber=\count11
  1723.     \expandafter\dimendef\csname c-\number\mscount c\endcsname
  1724.      =\allocationnumber
  1725.     \advance\count11by\@ne\ch@ck1\insc@unt\dimen\allocationnumber=\count11
  1726.     \expandafter\dimendef\csname c-\number\mscount r\endcsname
  1727.      =\allocationnumber
  1728.    \advance\mscount\m@ne\repeat
  1729.   \fi
  1730.  \fi}
  1731. {
  1732. \catcode`\|\active
  1733. \gdef\DV@{\toks@{}\toks@@{}\mscount\CT@
  1734.  \loop\ifnum\mscount>\@ne
  1735.   \toks@=\expandafter{\the\toks@|\omit}\toks@@=\expandafter{\the\toks@@|}%
  1736.   \advance\mscount\m@ne\repeat
  1737.  \xdef\VV@{\the\toks@}\xdef\VV@@{\the\toks@@}%
  1738.  \mscount\CT@
  1739.  \loop\ifnum\mscount>\z@
  1740.   \global\csname c-\number\mscount l\endcsname\z@
  1741.   \global\csname c-\number\mscount c\endcsname\z@
  1742.   \global\csname c-\number\mscount r\endcsname\z@
  1743.   \advance\mscount\m@ne\repeat}
  1744. }
  1745. \Invalid@\endtable
  1746. \let\NX@\relax
  1747. \def\VT@{\begingroup\let\NX@\noexpand
  1748.  \noexpand\catcode`\|\active\catcode`\&\active\csname table \space\endcsname}
  1749. \newif\ifNM@
  1750. \newif\ifNY@
  1751. \newif\ifNZ@
  1752. \newif\ifSL@
  1753. \def\@@@#1\@@#2#3\@@@{\ifx\@@@@#2\else\global\SL@true\fi}
  1754.  
  1755. {\catcode`\@=\active \uccode`\Z=`\@
  1756.  \uppercase{\expandafter\gdef\csname ATZ\endcsname{\let@\relax}}}
  1757.  
  1758. {
  1759. \catcode`\&\active \catcode`\|\active
  1760. \expandafter\gdef\csname table \space\endcsname#1\endtable{%
  1761.  \global\NM@true\global\NY@true\global\NZ@true\global\SL@false
  1762.  \let\TF@0\let\\0\let\hd0%
  1763.  \let\l0\let\c0\let\r0\let\+0\let\=0%
  1764.  \let\ex@@0\let\exa@0\let\exb@0%
  1765.  \let\hls@0\let\hl@0%
  1766.  \let\hL@0\let\vs@0\let\body0\let\iterate0%
  1767.  \def\cf##1{\cf@{##1}}\let\cf@0\let\fam0%
  1768.  \let\usetable0\let\VTW@@0\let~0\AT@\let\PRX@0\let\PX@0%
  1769.  \let\$0\let\(0\let\)0%
  1770.  {\let\@@0\def\t{\@@}\def\m{\@@}\def\b{\@@}\def\yy{\@@}\def\vZ{\@@}%
  1771.   \let\vs0\let\vz0\let\xx0\let\hlyy0\let\hLyy0%
  1772.   \let\ex0\let\exa0\let\exb0\let\hl0\let\hls0\let\exs0\let\NS0\let\hL0%
  1773.   \let&0\let|0\def\|{}%
  1774.   \expandafter\xdef\csname table \space\space\endcsname{#1}%
  1775.   \xdef\next@{#1}\expandafter\@@@\next@\@@\@@@@\@@@
  1776.  }%
  1777.  \def\t{\global\NM@false\t@}\def\m{\global\NM@false\m@}%
  1778.  \def\b{\global\NM@false\b@}%
  1779.  \let\t@0\let\m@0\let\b@0\let\NM@false0%
  1780.  \def\vs(##1){\noalign{\vs@{##1}}}%
  1781.  \def\vz{\noalign{\vz@}}%
  1782.  \def\vZ{\noalign{\global\NZ@false}\vZ@}\let\vZ@0\let\NZ@false0\let\vz@0%
  1783.  \def\hd{\NX@\hd@}%
  1784.  \def\xx{\noexpand\omit\global\X@true\xx@}\let\xx@0\let\X@true0%
  1785.  \def\yy{\global\NY@false\yy@}\let\yy@0\let\NY@false0%
  1786.  \def\hl{\noalign{\hrule\height\HTW@\hl@}}%
  1787.  \def\hL(##1){\noalign{\hrule\height##1\hL@{##1}}}%
  1788.  \def\hlyy{\noalign{\global\NY@false}\hlyy@}\let\hlyy@0%
  1789.  \def\hLyy{\noalign{\global\NY@false}\hLyy@}\let\hLyy@0%
  1790.  \def\hls##1\\{\hls@##1\cr\PX@}%
  1791.  \def\ex(##1){\ex@@{##1}\omit\vrule\height##1\width\z@\VV@\\}%
  1792.  \def\exs(##1)##2\\{\PRX@{##1}\omit\vrule\height##1\width\z@##2\cr\PX@}%
  1793.  \def\exa{\noalign{\global\NY@false}\exa@}%
  1794.  \def\exb{\noalign{\global\NY@false}\exb@}%
  1795.  \def\NS##1\\{\NS@##1\cr\NS@@}\let\NS@0\let\NS@@0%
  1796.  \def&{\T@B\omit\T@B}\def|{\T@B ZZZ\T@B}\def\|(##1){\T@B Y\VP@##1;;)\T@B}%
  1797.  \expandafter\xdef\csname table \space\space\endcsname{#1\crcr\ex(\z@)}%
  1798.  \xdef\VT@@@@{#1}%
  1799.  \xdef\VT@@@@@{\VV@@}%
  1800.  \endgroup\DT@}
  1801. }
  1802. \expandafter\def\csname table \space\space\space\endcsname#1#2#3{%
  1803.  \if#1Z\hskip-\VTW@\vrule\width\VTW@\else
  1804.  \let\VTW@@\VTW@\hskip-#2\vrule\width#2\vrule\width#3\hskip-#3\fi}
  1805. \def\VR@@#1#2#3#4{\if#2Z\hskip-#1\vrule\width#1\else
  1806.  \def\VTW@@{#1}\hskip-#3\vrule\width#3\vrule\width#4\hskip-#4\fi}
  1807. \def\VP@#1#2){\if#1*\VP@@#1#2)\else\VP@@@#1#2)\fi}
  1808. \def\VP@@#1;#2#3){\if#2*{\VTW@@}{\VTW@@}\else\VP@@@@#2#3)\fi}
  1809. \def\VP@@@@#1;#2){\if Z#1Z{\VTW@@}{\z@}\else{\VTW@@}{#1}\fi}
  1810. \def\VP@@@#1;#2#3){\if#2*{#1}{\VTW@@}\else{#1}{\VP@@@@@#2#3)}\fi}
  1811. \def\VP@@@@@#1;#2){\if Z#1Z\z@\else#1\fi}
  1812. {
  1813. \lccode`\7=`\p \lccode`\8=`\t
  1814. \lowercase{\gdef\FD@#1{\DN@##178##2\next@{\edef\FD@@{##1}\xdef#1{##2}}%
  1815.  \expandafter\next@#1\next@}}
  1816. }
  1817. \newif\ifl@
  1818. \newif\ifc@
  1819. \newif\ifr@
  1820. \newif\ift@
  1821. \newif\ifm@
  1822. \newif\ifb@
  1823. \newif\ifX@
  1824. \newif\ifY@
  1825. \newif\ifE@
  1826. \newif\ifH@
  1827. \newcount\RN@
  1828. \newif\ifR@
  1829. \newdimen\EW@
  1830. \def\HLS@{}
  1831. \def\DLS@{}
  1832. \newif\ifOP@
  1833. \newif\ifS@
  1834. \newif\ifNH@
  1835. \newif\ifSP@
  1836. \newif\ifSC@
  1837. \def\showsecondpass{\SP@true}
  1838. \def\noshowsecondpass{\SP@false}
  1839. \def\showcolwidths{\SC@true}
  1840. \def\noshowcolwidths{\SC@false}
  1841. \newif\ifTMS@
  1842. \newbox\tablebox@
  1843. \def\IT@{"}
  1844. \newif\ifnote@
  1845. \newif\iffnote@
  1846. \def\DT@{\FN@\DT@@}
  1847. \Invalid@\note
  1848. \Invalid@\fnote
  1849. \def\DT@@{\global\note@false\global\fnote@false
  1850.  \ifx\next\note\global\note@true\else\ifx\next\fnote\global\fnote@true\fi\fi
  1851.  \DT@@@}
  1852. \def\DT@@@{{%
  1853.  \let\RUH@\RH@\edef\SSC@{\SS@}%
  1854.  \everycr{\noalign{\RUH@\GS@
  1855.   \if T\TSS@\global\TMS@true\else\if M\TSS@\global\TMS@true\else
  1856.    \global\TMS@false\fi\fi
  1857.   \ifE@\else\ifH@\else
  1858.    \global\advance\RN@\@ne\fi\fi
  1859.   \global\E@false\global\H@false
  1860.   \global\CN@\@ne}}%
  1861.  \S@true\NH@true
  1862.  \let\CFG@\relax\let\LCFG@\relax\let\RCFG@\relax
  1863.  \let\LFG@\relax\let\LLFG@\relax
  1864.  \let\RFG@\relax\let\RRFG@\relax
  1865.  \def\s##1{\ignorespaces}%
  1866.  \let\CWD@\CWD@@\let\LWD@\LWD@@\let\RWD@\RWD@@
  1867.  \def\l{\global\l@true}%
  1868.  \def\c{\hfill\global\c@true}%
  1869.  \def\r{\hfill\global\r@true}%
  1870.  \def\t@{\global\t@true}%
  1871.  \def\m@{\global\m@true}%
  1872.  \def\b@{\global\b@true}%
  1873.  \RN@\z@\R@false
  1874.  \ifTW@
  1875.   \ifTWG@\DN@{\halign spread\TW@}\else\ifTWL@
  1876.   \DN@{\halign spread-\TW@}\else\DN@{\halign to\TW@}\fi\fi
  1877.  \else
  1878.   \DN@{\halign}%
  1879.  \fi
  1880.  \global\setbox\@ne\vbox{\EW@\z@\offinterlineskip
  1881.   \let\=\relax\let\\\cr\tabskip\z@\tabskip\FT@\next@
  1882.   {\span\PR@@@\tabskip\z@\tabskip\LT@\cr\csname table \space\space\endcsname
  1883.   \crcr}}%
  1884.  {\def\LB@##1{\LFG@@\global\advance\CN@\@ne}%
  1885.   \def\CB@##1{\CFG@@\global\advance\CN@\@ne}%
  1886.   \def\RB@##1{\RFG@@\global\advance\CN@\@ne}%
  1887.   \def\PB@##1##2{\global\advance\CN@\@ne}%
  1888.   \def\DB@##1{\RFG@@\global\advance\CN@\@ne}%
  1889.   \def\DL@##1{\RFG@@\global\advance\CN@\@ne}%
  1890.   \let\LBP@\LB@\let\CBP@\CB@\let\RBP@\RB@
  1891.   \setbox\z@\vbox{\EW@\z@\let\\\cr\halign{\span\pR@@\cr\VT@@@@@\cr}}%
  1892.  }%
  1893.  \dimen@\z@\setbox\z@\vbox{\unvcopy\@ne\unpenalty
  1894.   \setbox\z@\lastbox\unskip\unpenalty\setbox\z@
  1895.   \hbox{\unhbox\z@\count@\CT@\multiply\count@\tw@\advance\count@\m@ne
  1896.   \def\CWS@{.}\loop\unskip\setbox\z@\lastbox\ifSC@\ifnum\count@=\@ne
  1897.   \xdef\CWS@{\the\wdz@\CWS@}\else
  1898.   \ifodd\count@\xdef\CWS@{; \the\wdz@\CWS@}\fi\fi\fi
  1899.   \global\advance\dimen@\wdz@\ifnum\count@>\z@
  1900.   \advance\count@\m@ne\repeat}}%
  1901.  \ifSC@
  1902.   \immediate\write\sixt@@n{}%
  1903.   {\lccode`\Z=`\#\lccode`\C=`\C
  1904.   \count@\pageno\advance\count@\@ne
  1905.   \lowercase{\message{Column widths of table Z\number\count@: \CWS@}}}%
  1906.   \immediate\write\sixt@@n{}%
  1907.  \fi
  1908.  \xdef\IT@{\IT@"}%
  1909.  \OP@false\ifNZ@\ifNS@\ifNM@\ifNY@\ifS@\ifNH@\OP@true\else
  1910.  \ifTW@\else\OP@true\fi\fi\fi\fi\fi\fi\fi
  1911.  \ifOP@
  1912.   \global\setbox\tablebox@\hbox{\boxz@\hbox to\Rs@{}\hbox to\Ls@{}}%
  1913.  \else
  1914.   \ifSP@\immediate\write\sixt@@n{Second pass for
  1915.    Table \string"\TN@\string"}%
  1916.   \fi
  1917.   \setbox\@ne\null
  1918.   \PRF@\edef\TF@{\the\font}\MS@\RN@\z@
  1919.   \ifTW@
  1920.    \ifnum\SCT@=\z@
  1921.     \Err@{You don't have any stretch in this table}\EW@\z@
  1922.    \else
  1923.     \ifTWG@\EW@\TW@\else\ifTWL@\EW@-\TW@\else
  1924.      \EW@\TW@\advance\EW@-\dimen@\fi\fi
  1925.     \divide\EW@\SCT@
  1926.    \fi
  1927.   \else
  1928.    \EW@\z@
  1929.   \fi
  1930.   \def\s##1{\hbox to##1\EW@{}\ignorespaces}%
  1931.   \FD@\HLS@\FD@\DLS@
  1932.   \R@true\let\CFG@\CFG@@\let\LCFG@\LCFG@@\let\RCFG@\RCFG@@
  1933.   \let\LFG@\LFG@@\let\LLFG@\LLFG@@\let\RFG@\RFG@@\let\RRFG@\RRFG@@
  1934.   \let\CWD@\relax\let\LWD@\relax\let\RWD@\relax\let\RUH@\UH@
  1935.   \edef\SS@{\SSC@}%
  1936.   \let\=\relax
  1937.   \global\setbox\tablebox@\hbox{%
  1938.    \vbox{\offinterlineskip\let\\\cr\halign{\tabskip\z@\span\PR@@\tabskip\z@\cr
  1939.    \VT@@@@\crcr}}\hbox to\Rs@{}\hbox to\Ls@{}}%
  1940.  \fi}%
  1941.  \setboxz@h{\unhbox\tablebox@\global\setbox\LBX@\lastbox
  1942.   \global\setbox\RBX@\lastbox}%
  1943.  \dimen@\ht\z@ \dimen@ii\dp\z@
  1944.  \global\setbox\tablebox@\hbox{\vrule\height\dimen@\depth\dimen@ii
  1945.   \width\wd\LBX@\hskip-\wd\LBX@
  1946.  \boxz@\hskip-\wd\RBX@\vrule\height\dimen@\depth\dimen@ii\width\wd\RBX@}%
  1947.  \global\TW@false\global\AD@false
  1948.  \gdef\TW@{\z@}\gdef\Ls@{\z@}\gdef\Rs@{\z@}\gdef\HLS@{}%
  1949.  \gdef\DLS@{}\gdef\LGL@{}\gdef\RGL@{}\gdef\LSL@{}\gdef\RSL@{}%
  1950.  \gdef\PR@{}\gdef\SS@{}\gdef\pR@@{}\gdef\PR@@{}\gdef\PR@@@{}\gdef\VV@{}%
  1951.  \gdef\VV@@{}%
  1952.  \expandafter\gdef\csname table \space\space\endcsname{}%
  1953.  \gdef\VT@@@@{}\gdef\VT@@@@@{}%
  1954.  \gdef\XHL@{}\gdef\XXL@{}\gdef\XXHL@{}\endgroup
  1955.  \ifstoring@
  1956.   \DN@{\global\setbox\csname table\thetable@\endcsname\box\tablebox@
  1957.   \global\storing@false}%
  1958.  \else
  1959.  \ifnote@\let\next@\donote@\else\iffnote@\let\next@\dofnote@\else
  1960.   \let\next@\writeit@\fi\fi
  1961.  \fi\next@}
  1962. \newbox\notebox@
  1963. \newbox\newnotebox@
  1964. \newif\iffirstnote@
  1965. \newif\iffirstfnote@
  1966. \firstnote@true
  1967. \firstfnote@true
  1968. \long\def\noteformat@#1{\global\setbox\newnotebox@
  1969.  \vbox{\hsize=\wd\tablebox@\null\noindent\rm #1\par\null}}
  1970. \long\def\noteformat@@#1{\noteformat@{\ignorespaces#1\unskip}%
  1971.  \iffirstnote@
  1972.   \global\setbox\notebox@\box\newnotebox@
  1973.  \else
  1974.   \global\setbox\notebox@
  1975.   \vbox{\box\notebox@\nointerlineskip\vskip-\baselineskip
  1976.    \box\newnotebox@}\fi
  1977.  \firstnote@false}
  1978. \long\def\donote@\note#1{\noteformat@@{#1}\FN@\morenote@}
  1979. \long\def\dofnote@\fnote#1{\fnoteformat@@{#1}\FN@\morenote@}
  1980. \let\fnoteformat@\noteformat@
  1981. \long\def\fnoteformat@@#1{\fnoteformat@{\ignorespaces#1\unskip}%
  1982.  \iffirstnote@
  1983.   \firstnote@false
  1984.   \iffirstfnote@
  1985.    \global\setbox\notebox@\box\newnotebox@
  1986.   \else
  1987.    \global\setbox\notebox@\vbox{\box\notebox@\nointerlineskip
  1988.    \vskip-\baselineskip\box\newnotebox@}%
  1989.   \fi
  1990.  \else
  1991.   \global\setbox\notebox@\vbox{\box\notebox@\nointerlineskip
  1992.   \iffirstfnote@\smallskip\fi
  1993.   \vskip-\baselineskip\box\newnotebox@}%
  1994.  \fi
  1995.  \firstfnote@false}
  1996. \def\morenote@{\ifx\next\space@\DN@. {\FN@\morenote@}\else
  1997.  \ifx\next\note\DN@.{\donote@}\else\ifx\next\fnote
  1998.  \DN@.{\dofnote@}\else\DN@.{\writeit@}\fi\fi\fi\next@.}
  1999. \def\writeit@{\global\firstnote@true\global\firstfnote@true
  2000.  \dimen@\dp\tablebox@
  2001.  \setbox\tablebox@\hbox{\vbox{\box\tablebox@
  2002.   \ifvoid\notebox@
  2003.   \else
  2004.    \nointerlineskip\smallskip
  2005.    \MS@
  2006.    \ifdim\dimen@<\FSD\dimen@ii\FSD\advance\dimen@ii-\dimen@\vskip\dimen@ii\fi
  2007.   \box\notebox@\vskip-\baselineskip\fi}}%
  2008.  \immediate\write\writedata@
  2009.   {\the\ht\tablebox@\space\the\dp\tablebox@\space\the\wd\tablebox@}%
  2010.  \dimen@\ht\tablebox@ \advance\dimen@\dp\tablebox@
  2011.  \ifdim\dimen@>\vsize\Err@{Table bigger than \string\vsize; height
  2012.   \the\ht\tablebox@, depth \the\dp\tablebox@}\fi
  2013.  \hrule\height\z@
  2014.  \vskip\vsize
  2015.  \special{beginpaste:}%
  2016.  \ht\tablebox@=\z@\dp\tablebox@=\z@\wd\tablebox@=\z@
  2017.  \noindent\box\tablebox@
  2018.  \special{endpaste:}%
  2019.  \smash{\vrule\height1sp\width1sp\depth\z@}
  2020. \eject}
  2021. \newbox\TBX@
  2022. \def\es@{\crcr\egroup\egroup\let\FS@\relax}
  2023. \def\ls@{\let\=\es@\vbox\bgroup\NBL@\let\+\cr\everycr{}\halign
  2024.  \bgroup\ignorespaces##\unskip\FS@@\hfil\cr}
  2025. \def\cs@{\let\=\es@\vbox\bgroup\NBL@\let\+\cr\everycr{}\halign
  2026.  \bgroup\hfil\ignorespaces##\unskip\FS@@\hfil\cr}
  2027. \def\rs@{\let\=\es@\vbox\bgroup\NBL@\let\+\cr\everycr{}\halign
  2028.  \bgroup\hfil\ignorespaces##\unskip\FS@@\cr}
  2029. \def\FG@{\hskip\SSL@\EW@\hskip-\SSLL@\EW@}
  2030. \def\CLB@#1#2{%
  2031.  \if&%
  2032.  \else
  2033.   \let\=\ls@\l@false\c@false\r@false\Y@false
  2034.   \ifX@\FG@\hskip\SLG@\hskip-\SLLG@\global\X@false\SL@true\fi
  2035.   \ifSL@
  2036.    \t@false\m@false\b@false\setbox\TBX@\hbox{\TF@#1\ignorespaces#2\unskip
  2037.     \FS@}\def\UPT@{L}\UP@
  2038.   \else
  2039.    \ifTMS@
  2040.     \t@false\m@false\b@false
  2041.     \setbox\TBX@\hbox{\TF@#1\ignorespaces#2\unskip\FS@}\def\UPT@{L}\UP@
  2042.    \else
  2043.     \TF@#1\ignorespaces#2\unskip\FS@
  2044.    \fi
  2045.   \fi
  2046.   \hfil
  2047.   \ifc@\hfill\fi
  2048.  \fi
  2049.  \global\advance\CN@\@ne}
  2050. \def\LB@#1{\CLB@{}{#1}}
  2051. \def\MLB@#1{%
  2052.  \if&%
  2053.  \else
  2054.   \ifX@
  2055.    \CB@{\TF@#1}\global\X@false
  2056.   \else
  2057.    \let\=\ls@\l@false\c@false\r@false\Y@false
  2058.    \ifSL@
  2059.     \t@false\m@false\b@false\setbox\TBX@\hbox{$#1$\FS@}\def\UPT@{L}\UP@
  2060.    \else
  2061.     \ifTMS@
  2062.      \t@false\m@false\b@false\setbox\TBX@\hbox{$#1$\FS@}\def\UPT@{L}\UP@
  2063.     \else
  2064.      $#1$\FS@
  2065.     \fi
  2066.    \fi
  2067.    \hfil
  2068.    \ifc@\hfill\fi
  2069.   \fi
  2070.  \fi
  2071.  \global\advance\CN@\@ne}
  2072. \def\CMLB@#1{%
  2073.  \if&%
  2074.  \else
  2075.   \ifX@
  2076.    \CB@{\TF@#1}\global\X@false
  2077.   \else
  2078.    \let\=\ls@\l@false\c@false\r@false\Y@false
  2079.    \ifSL@
  2080.     \t@false\m@false\b@false\setbox\TBX@\hbox{$\displaystyle{#1}$\FS@}%
  2081.     \def\UPT@{L}\UP@
  2082.    \else
  2083.     \ifTMS@
  2084.      \t@false\m@false\b@false\setbox\TBX@\hbox{$\displaystyle{#1}$\FS@}%
  2085.      \def\UPT@{L}\UP@
  2086.     \else
  2087.      $\displaystyle{#1}$\FS@
  2088.     \fi
  2089.    \fi
  2090.    \hfil
  2091.    \ifc@\hfill\fi
  2092.   \fi
  2093.  \fi
  2094.  \global\advance\CN@\@ne}
  2095. \def\CLBP@#1#2{%
  2096.  \if&%
  2097.  \else
  2098.   \let\=\ls@\l@false\c@false\r@false\Y@false\t@false\m@false\b@false
  2099.   \setbox\TBX@\hbox{\TF@#1\ignorespaces#2\unskip\FS@}\LFG@\LLFG@\LWD@
  2100.   \ifX@\FG@\hskip\SLG@\hskip-\SLLG@\global\X@false\fi
  2101.   \def\UPT@{L}\UP@
  2102.   \hfil
  2103.   \ifc@\hfill\fi
  2104.  \fi
  2105.  \global\advance\CN@\@ne}
  2106. \def\LBP@#1{\CLBP@{}{#1}}
  2107. \let\CLB@@\CLB@
  2108. \let\CLBP@@\CLBP@
  2109. \let\MLB@@\MLB@
  2110. \let\CMLB@@\CMLB@
  2111. \def\CCB@#1#2{%
  2112.  \if&%
  2113.  \else
  2114.   \let\=\cs@\l@false\c@false\r@false\Y@false
  2115.   \hfil
  2116.   \ifX@\FG@\hskip\SLG@\hskip-\SLLG@\global\X@false\SL@true\fi
  2117.   \ifSL@
  2118.    \t@false\m@false\b@false\setbox\TBX@\hbox{\TF@#1\ignorespaces#2\unskip
  2119.    \FS@}\def\UPT@{C}\UP@
  2120.   \else
  2121.    \ifTMS@\t@false\m@false\b@false
  2122.     \setbox\TBX@\hbox{\TF@#1\ignorespaces#2\unskip\FS@}\def\UPT@{C}\UP@
  2123.    \else
  2124.     \TF@#1\ignorespaces#2\unskip\FS@
  2125.    \fi
  2126.   \fi
  2127.   \hfil
  2128.   \ifl@\hfill\fi
  2129.   \ifc@\hfill\fi
  2130.  \fi
  2131.  \global\advance\CN@\@ne}
  2132. \def\CB@#1{\CCB@{}{#1}}
  2133. \def\MCB@#1{%
  2134.  \if&%
  2135.  \else
  2136.   \ifX@
  2137.    \CB@{\TF@#1}\global\X@false
  2138.   \else
  2139.    \let\=\cs@\l@false\c@false\r@false\Y@false\hfil
  2140.    \ifSL@
  2141.     \t@false\m@false\b@false\setbox\TBX@\hbox{$#1$\FS@}\def\UPT@{C}\UP@
  2142.    \else
  2143.     \ifTMS@
  2144.      \t@false\m@false\b@false\setbox\TBX@\hbox{$#1$\FS@}\def\UPT@{C}\UP@
  2145.     \else
  2146.      $#1$\FS@
  2147.     \fi
  2148.    \fi
  2149.    \hfil
  2150.    \ifl@\hfill\fi
  2151.    \ifc@\hfill\fi
  2152.   \fi
  2153.  \fi
  2154.  \global\advance\CN@\@ne}
  2155. \def\CMCB@#1{%
  2156.  \if&%
  2157.  \else
  2158.   \ifX@
  2159.    \CB@{\TF@#1}\global\X@false
  2160.   \else
  2161.    \let\=\cs@\l@false\c@false\r@false\Y@false\hfil
  2162.    \ifSL@
  2163.     \t@false\m@false\b@false\setbox\TBX@\hbox{$\displaystyle{#1}$\FS@}%
  2164.     \def\UPT@{C}\UP@
  2165.    \else
  2166.     \ifTMS@
  2167.      \t@false\m@false\b@false
  2168.      \setbox\TBX@\hbox{$\displaystyle{#1}$\FS@}\def\UPT@{C}\UP@
  2169.     \else
  2170.      $\displaystyle{#1}$\FS@
  2171.     \fi
  2172.    \fi
  2173.    \hfil
  2174.    \ifl@\hfill\fi
  2175.    \ifc@\hfill\fi
  2176.   \fi
  2177.  \fi
  2178.  \global\advance\CN@\@ne}
  2179. \def\CCBP@#1#2{%
  2180.  \if&%
  2181.  \else
  2182.   \let\=\cs@\l@false\c@false\r@false\Y@false\t@false\m@false\b@false
  2183.   \setbox\TBX@\hbox{\TF@#1\ignorespaces#2\unskip\FS@}\CFG@\hfil\LCFG@\CWD@
  2184.   \ifX@\FG@\hskip\SLG@\hskip-\SLLG@\fi
  2185.   \def\UPT@{C}\UP@\RCFG@
  2186.   \ifX@\global\X@false\fi
  2187.   \hfil
  2188.   \ifl@\hfill\fi
  2189.   \ifc@\hfill\fi
  2190.  \fi
  2191.  \global\advance\CN@\@ne}
  2192. \def\CBP@#1{\CCBP@{}{#1}}
  2193. \let\CCB@@\CCB@
  2194. \let\CCBP@@\CCBP@
  2195. \let\MCB@@\MCB@
  2196. \let\CMCB@@\CMCB@
  2197. \def\CRB@#1#2{%
  2198.  \if&%
  2199.  \else
  2200.   \let\=\rs@\l@false\c@false\r@false\Y@false\hfil
  2201.   \ifX@\FG@\hskip\SLG@\hskip-\SLLG@\global\X@false\SL@true\fi
  2202.   \ifSL@
  2203.    \t@false\m@false\b@false\setbox\TBX@\hbox{\TF@#1\ignorespaces#2\unskip
  2204.     \FS@}\def\UPT@{R}\UP@
  2205.   \else
  2206.    \ifTMS@
  2207.     \t@false\m@false\b@false
  2208.     \setbox\TBX@\hbox{\TF@#1\ignorespaces#2\unskip\FS@}%
  2209.     \ifc@\hfill\fi
  2210.     \def\UPT@{R}\UP@
  2211.    \else
  2212.     \TF@#1\ignorespaces#2\unskip\FS@
  2213.    \fi
  2214.   \fi
  2215.   \ifc@\hfill\fi
  2216.   \ifl@\hfill\fi
  2217.  \fi
  2218.  \global\advance\CN@\@ne}
  2219. \def\RB@#1{\CRB@{}{#1}}
  2220. \def\MRB@#1{%
  2221.  \if&%
  2222.  \else
  2223.   \ifX@
  2224.    \CB@{\TF@#1}\global\X@false
  2225.   \else
  2226.    \let\=\rs@\l@false\c@false\r@false\Y@false\hfil
  2227.    \ifSL@
  2228.     \t@false\m@false\b@false\setbox\TBX@\hbox{$#1$\FS@}\def\UPT@{R}\UP@
  2229.    \else
  2230.     \ifTMS@
  2231.      \t@false\m@false\b@false\setbox\TBX@\hbox{$#1$\FS@}%
  2232.      \ifc@\hfill\fi
  2233.      \def\UPT@{R}\UP@
  2234.     \else
  2235.      $#1$\FS@
  2236.     \fi
  2237.    \fi
  2238.    \ifc@\hfill\fi
  2239.    \ifl@\hfill\fi
  2240.   \fi
  2241.  \fi
  2242.  \global\advance\CN@\@ne}
  2243. \def\CMRB@#1{%
  2244.  \if&%
  2245.  \else
  2246.   \ifX@
  2247.    \CB@{\TF@#1}\global\X@false
  2248.   \else
  2249.    \let\=\rs@\l@false\c@false\r@false\Y@false\hfil
  2250.    \ifSL@
  2251.     \t@false\m@false\b@false\setbox\TBX@\hbox{$\displaystyle{#1}$\FS@}%
  2252.     \def\UPT@{R}\UP@
  2253.    \else
  2254.     \ifTMS@
  2255.      \t@false\m@false\b@false\setbox\TBX@\hbox{$\displaystyle{#1}$\FS@}%
  2256.      \ifc@\hfill\fi
  2257.      \def\UPT@{R}\UP@
  2258.     \else
  2259.      $\displaystyle{#1}$\FS@
  2260.     \fi
  2261.    \fi
  2262.    \ifc@\hfill\fi
  2263.    \ifl@\hfill\fi
  2264.   \fi
  2265.  \fi
  2266.  \global\advance\CN@\@ne}
  2267. \def\RBP@#1{\CRBP@{}{#1}}
  2268. \def\CRBP@#1#2{%
  2269.  \if&%
  2270.  \else
  2271.   \let\=\rs@\l@false\c@false\r@false\Y@false\t@false\m@false\b@false
  2272.   \setbox\TBX@\hbox{\TF@#1\ignorespaces#2\unskip\FS@}%
  2273.   \RFG@\hfil
  2274.   \ifX@\FG@\hskip\SLG@\hskip-\SLLG@\fi
  2275.   \RWD@\def\UPT@{R}\UP@\RRFG@
  2276.   \ifX@\global\X@false\fi
  2277.   \ifc@\hfill\fi
  2278.   \ifl@\hfill\fi
  2279.  \fi
  2280.  \global\advance\CN@\@ne}
  2281. \let\CRB@@\CRB@
  2282. \let\CRBP@@\CRBP@
  2283. \let\MRB@@\MRB@
  2284. \let\CMRB@@\CMRB@
  2285. \def\UP@{%
  2286.  \ifR@
  2287.   \ifY@
  2288.    \ift@\def\CSS@{T}\else\ifm@\def\CSS@{M}\else\def\CSS@{B}\fi\fi
  2289.    \let\HLS@@\HLS@ \let\DLS@@\DLS@
  2290.    \dimen@\TRHT@ \advance\dimen@\TRDP@
  2291.    \AX@
  2292.    \count@\YC@
  2293.    \loop
  2294.     \ifnum\count@>\@ne \FD@\HLS@@ \advance\dimen@\FD@@\p@
  2295.     \FD@\DLS@@
  2296.     \ifnum\count@=\tw@ \FLD@\FD@@\p@ \else \advance\dimen@\FD@@\p@ \fi
  2297.     \advance\count@\m@ne\repeat
  2298.    \if\UPT@ P\else\ifc@\hfill\fi\if\UPT@ L\ifr@\hfill\fi\fi\fi
  2299.    \vbox to\TRHT@{%
  2300.     \vbox to\dimen@{%
  2301.      \if B\CSS@\vfill\fi
  2302.      \if M\CSS@\vskip\FLD@\vfill\fi
  2303.      \box\TBX@
  2304.      \if M\CSS@\vfill\fi
  2305.      \if T\CSS@\vfill\fi
  2306.      }\vss}%
  2307.   \else
  2308.    \ift@\def\CSS@{T}\else\ifm@\def\CSS@{M}\else\ifb@\def\CSS@{B}\else
  2309.     \if\TSS@ T\def\CSS@{T}\else\if\TSS@ M\def\CSS@{M}\else\def\CSS@{B}\fi\fi
  2310.    \fi\fi\fi
  2311.    \ifdim\TRHT@>\ht\TBX@
  2312.     \if\UPT@ P\else\ifc@\hfill\fi\if\UPT@ L\ifr@\hfill\fi\fi\fi
  2313.     \vbox to\TRHT@{%
  2314.      \if B\CSS@\vfill\fi
  2315.      \if M\CSS@\vfill\fi
  2316.      \if M\CSS@\dp\TBX@\z@\fi
  2317.      \box\TBX@
  2318.      \if M\CSS@\vfill\fi
  2319.      \if T\CSS@\vfill\fi}%
  2320.    \else
  2321.     \if\UPT@ P\let\next@\box\else\let\next@\unhbox\fi
  2322.     \next@\TBX@
  2323.    \fi
  2324.   \fi
  2325.  \else
  2326.   \ifY@
  2327.   \else
  2328.    \ifdim\ht\TBX@>\RHT@ \global\RHT@\ht\TBX@ \fi
  2329.    \ifdim\dp\TBX@>\RDP@ \global\RDP@\dp\TBX@ \fi
  2330.   \fi
  2331.   \if\UPT@ P\let\next@\box\else\let\next@\unhbox\fi
  2332.   \next@\TBX@
  2333.  \fi}
  2334. \def\DBB@#1#2{\DB@{\global\DCC@#1\relax#2}}
  2335. \let\DBB@@\DBB@
  2336. \def\DB@#1{%
  2337.  \if&%
  2338.  \else
  2339.   \l@false\c@false\r@false\Y@false\t@false\m@false\b@false
  2340.   \setbox\TBX@\hbox{\TF@\ignorespaces#1\unskip\FS@}%
  2341.   \ifl@\else\ifc@\else\ifr@\else\setbox\TBX@\hbox{\TF@\DC@{#1}\FS@}\fi\fi\fi
  2342.   \RFG@
  2343.   \hfil
  2344.   \ifX@\FG@\hskip\SLG@\hskip-\SLLG@\fi
  2345.   \RWD@\def\UPT@{R}\UP@\RRFG@
  2346.   \ifX@\global\X@false\fi
  2347.   \ifc@\hfill\fi
  2348.   \ifl@\hfill\fi
  2349.  \fi
  2350.  \global\advance\CN@\@ne}
  2351. \def\S@#1#2 #3\S@{#1#2}
  2352. \def\DC@#1{\expandafter\DC@@\S@#1 \S@..\DC@@}
  2353. \def\DC@@#1.#2.#3\DC@@{#1\setboxz@h{.}\dimen@\wdz@
  2354.  \setboxz@h{0}\advance\dimen@\DCC@\wdz@
  2355.  \hbox to\dimen@{\if Z#3Z\else.\fi#2\hss}}
  2356. \newif\ifD@
  2357. \newif\ifLP@
  2358. \let\(\relax
  2359. \let\)\relax
  2360. \def\DLL@#1#2{\DL@{\global\DLC@#1\relax#2}}
  2361. \let\DLL@@\DLL@
  2362. \def\DL@#1{%
  2363.  \if&%
  2364.  \else
  2365.   \l@false\c@false\r@false\Y@false\t@false\m@false\b@false\D@false\LP@false
  2366.   \def\${\global\D@true\char'044\relax}%
  2367.   \def\({\global\LP@true}%
  2368.   \def\){\rlap)}%
  2369.   \setbox\TBX@\hbox{\TF@\ignorespaces#1\unskip\FS@}%
  2370.   \ifl@\else\ifc@\else\ifr@\else\setbox\TBX@\hbox{\TF@\DLA@{#1}\FS@}\fi\fi\fi
  2371.   \RFG@
  2372.   \hfil
  2373.   \ifX@\FG@\hskip\SLG@\hskip-\SLLG@\fi
  2374.   \RWD@\def\UPT@{R}\UP@\RRFG@\ifX@\global\X@false\fi
  2375.   \ifc@\hfill\fi
  2376.   \ifl@\hfill\fi
  2377.  \fi
  2378.  \global\advance\CN@\@ne}
  2379. \newdimen\DLG@
  2380. \DLG@=1em
  2381. \def\dollarspace(#1){\DLG@#1\relax}
  2382. \def\DLA@#1{\def\){\rlap)}\def\({}\let\$\relax\DLA@@#1..\DLA@@}
  2383. \newbox\DGB@
  2384. \newbox\PRB@
  2385. \def\DLA@@#1.#2.#3\DLA@@{\setbox\DGB@\hbox{0}\setbox\PRB@\hbox{.}%
  2386.  \setbox\tw@\hbox{,}%
  2387.  \dimen@\DLC@\wd\DGB@
  2388.  \count@\DLC@ \advance\count@\m@ne \divide\count@\thr@@
  2389.  \advance\dimen@\count@\wd\tw@
  2390.  \ifD@\char'044 \fi
  2391.  \kern\DLG@
  2392.  \ifLP@ \ifD@\setboxz@h{(}\kern-\wdz@\fi (\fi
  2393.  \hbox to\dimen@{\hfill#1}%
  2394.  \if Z#3Z\kern\tw@\wd\DGB@\kern\wd\PRB@\else.\fi
  2395.  #2\unskip}
  2396. \def\dollar{\char'044 }
  2397. \def\PB@#1#2{\CPB@{#1}{}{#2}}
  2398. \def\CPB@#1#2#3{%
  2399.  \if&%
  2400.  \else
  2401.   \ifX@
  2402.    \CB@{\TF@#3}\global\X@false
  2403.   \else
  2404.    \l@false\c@false\r@false
  2405.    \setbox\TBX@\vbox{\TF@\NBL@\parskip\z@\edef\indent{\hskip\the\parindent}%
  2406.    \parindent\z@\parfillskip\z@ plus1fil\relax\hsize#1\relax
  2407.    \FS@@#2\ignorespaces#3\unskip\FS@@
  2408.    \ifc@\hfill\null\fi}%
  2409.    \def\UPT@{P}\UP@
  2410.   \fi
  2411.  \fi}
  2412. \let\PB@@\PB@
  2413. \let\CPB@@\CPB@
  2414. \newdimen\RHT@
  2415. \newdimen\RDP@
  2416. \newdimen\TRHT@
  2417. \newdimen\TRDP@
  2418. \newdimen\PRHT@
  2419. \newdimen\PRDP@
  2420. \newdimen\FRHT@
  2421. \newcount\YC@
  2422. \newdimen\FLD@
  2423. \def\AX@{%
  2424.  {\ifx\XHL@\empty
  2425.   \else
  2426.    \advance\YC@\RN@
  2427.    \DN@##1,##2"##3{\ifnum##1>\RN@\ifnum##1<\YC@
  2428.     \global\advance\dimen@##2\relax\fi\fi
  2429.     \ifnum##3=\m@ne\let\nextii@\relax\else\DNii@{\next@##3}\fi
  2430.     \nextii@}%
  2431.    \expandafter\next@\XHL@\m@ne
  2432.   \fi
  2433.  }}
  2434. \def\RH@{%
  2435.  \ifH@
  2436.   \dimen@\RHT@ \advance\dimen@\RDP@
  2437.   \xdef\XHL@{\XHL@\the\RN@,\the\dimen@"}%
  2438.  \else\ifE@\else
  2439.   \xdef\HLS@{\HLS@\the\RHT@}\xdef\DLS@{\DLS@\the\RDP@}%
  2440.  \fi\fi
  2441.  \global\RHT@\z@\global\RDP@\z@}
  2442. \def\UH@{%
  2443.  \ifnum\RN@=\tw@ \global\FRHT@\FSH \fi
  2444.  \ifH@\else\ifE@\else
  2445.   \global\PRHT@\TRHT@ \global\PRDP@\TRDP@
  2446.   \ifx\HLS@\empty \else \FD@\HLS@ \global\TRHT@\FD@@\p@ \fi
  2447.   \ifx\DLS@\empty \else \FD@\DLS@ \global\TRDP@\FD@@\p@ \fi
  2448.  \fi\fi}
  2449. \def\CWD@@{%
  2450.  \ifX@\else
  2451.   \ifl@
  2452.    \ifdim\wd\TBX@>\csname c-\number\CN@ l\endcsname
  2453.     \global\csname c-\number\CN@ l\endcsname\wd\TBX@\fi
  2454.   \else\ifr@
  2455.    \ifdim\wd\TBX@>\csname c-\number\CN@ r\endcsname
  2456.     \global\csname c-\number\CN@ r\endcsname\wd\TBX@\fi
  2457.   \else
  2458.    \ifdim\wd\TBX@>\csname c-\number\CN@ c\endcsname
  2459.    \global\csname c-\number\CN@ c\endcsname\wd\TBX@\fi
  2460.   \fi\fi
  2461.  \fi}
  2462. \def\LWD@@{%
  2463.  \ifX@\else
  2464.   \ifr@
  2465.    \ifdim\wd\TBX@>\csname c-\number\CN@ r\endcsname
  2466.     \global\csname c-\number\CN@ r\endcsname\wd\TBX@\fi
  2467.   \else\ifc@
  2468.    \ifdim\wd\TBX@>\csname c-\number\CN@ c\endcsname
  2469.     \global\csname c-\number\CN@ c\endcsname\wd\TBX@\fi
  2470.   \else
  2471.    \ifdim\wd\TBX@>\csname c-\number\CN@ l\endcsname
  2472.     \global\csname c-\number\CN@ l\endcsname\wd\TBX@\fi
  2473.   \fi\fi
  2474.  \fi}
  2475. \def\RWD@@{%
  2476.  \ifX@\else
  2477.   \ifl@
  2478.    \ifdim\wd\TBX@>\csname c-\number\CN@ l\endcsname
  2479.     \global\csname c-\number\CN@ l\endcsname\wd\TBX@\fi
  2480.   \else\ifc@
  2481.    \ifdim\wd\TBX@>\csname c-\number\CN@ c\endcsname
  2482.     \global\csname c-\number\CN@ c\endcsname\wd\TBX@\fi
  2483.   \else
  2484.    \ifdim\wd\TBX@>\csname c-\number\CN@ r\endcsname
  2485.     \global\csname c-\number\CN@ r\endcsname\wd\TBX@\fi
  2486.   \fi\fi
  2487.  \fi}
  2488. \newif\ifLX@
  2489. \newif\ifCX@
  2490. \newif\ifRX@
  2491. \newdimen\FGD@
  2492. \def\CFG@@{%
  2493.  \ifdim \csname c-\number\CN@ l\endcsname > \csname c-\number\CN@ c\endcsname
  2494.   \ifdim \csname c-\number\CN@ l\endcsname > \csname c-\number\CN@ r\endcsname
  2495.    \DN@{\global\S@false\LX@true}%
  2496.    \FGD@ \csname c-\number\CN@ l\endcsname
  2497.    \advance\FGD@ -\csname c-\number\CN@ c\endcsname
  2498.   \else
  2499.    \DN@{\global\S@false\RX@true}%
  2500.    \FGD@ \csname c-\number\CN@ r\endcsname
  2501.    \advance\FGD@ -\csname c-\number\CN@ c\endcsname
  2502.   \fi
  2503.  \else
  2504.   \ifdim \csname c-\number\CN@ r\endcsname > \csname c-\number\CN@ c\endcsname
  2505.    \DN@{\global\S@false\RX@true}%
  2506.    \FGD@ \csname c-\number\CN@ r\endcsname
  2507.    \advance\FGD@ -\csname c-\number\CN@ c\endcsname
  2508.   \else
  2509.    \DN@{\CX@true}%
  2510.   \fi
  2511.  \fi
  2512.  \next@}
  2513. \def\LCFG@@{%
  2514.  \ifX@\else\ifRX@
  2515.   \ifl@\else\ifr@\else\hskip\FGD@\fi\fi
  2516.  \fi\fi}
  2517. \def\RCFG@@{%
  2518.  \ifX@\else\ifLX@
  2519.   \ifr@\else\ifl@\else\hskip\FGD@\fi\fi
  2520.  \fi\fi}
  2521. \def\LFG@@{%
  2522.  \ifdim\csname c-\number\CN@ c\endcsname > \csname c-\number\CN@ l\endcsname
  2523.   \ifdim\csname c-\number\CN@ c\endcsname > \csname c-\number\CN@ r\endcsname
  2524.    \DN@{\global\S@false\CX@true}%
  2525.    \FGD@ \csname c-\number\CN@ c\endcsname
  2526.    \advance\FGD@ -\csname c-\number\CN@ l\endcsname
  2527.   \else
  2528.    \DN@{\global\S@false\RX@true}%
  2529.    \FGD@ \csname c-\number\CN@ r\endcsname
  2530.    \advance\FGD@ -\csname c-\number\CN@ l\endcsname
  2531.   \fi
  2532.  \else
  2533.   \ifdim\csname c-\number\CN@ r\endcsname > \csname c-\number\CN@ l\endcsname
  2534.    \DN@{\global\S@false\RX@true}%
  2535.    \FGD@ \csname c-\number\CN@ r\endcsname
  2536.    \advance\FGD@ -\csname c-\number\CN@ l\endcsname
  2537.   \else
  2538.    \DN@{\LX@true}%
  2539.   \fi
  2540.  \fi
  2541.  \next@}
  2542. \def\RFG@@{%
  2543.  \ifdim\csname c-\number\CN@ c\endcsname > \csname c-\number\CN@ r\endcsname
  2544.   \ifdim\csname c-\number\CN@ c\endcsname > \csname c-\number\CN@ l\endcsname
  2545.    \DN@{\global\S@false\CX@true}%
  2546.    \FGD@ \csname c-\number\CN@ c\endcsname
  2547.    \advance\FGD@ -\csname c-\number\CN@ r\endcsname
  2548.   \else
  2549.    \DN@{\global\S@false\LX@true}%
  2550.    \FGD@ \csname c-\number\CN@ l\endcsname
  2551.    \advance\FGD@ -\csname c-\number\CN@ r\endcsname
  2552.   \fi
  2553.  \else
  2554.   \ifdim\csname c-\number\CN@ l\endcsname > \csname c-\number\CN@ r\endcsname
  2555.    \DN@{\global\S@false\LX@true}%
  2556.    \FGD@ \csname c-\number\CN@ l\endcsname
  2557.    \advance\FGD@ -\csname c-\number\CN@ r\endcsname
  2558.   \else
  2559.    \DN@{\RX@true}%
  2560.   \fi
  2561.  \fi
  2562.  \next@}
  2563. \def\LLFG@@{%
  2564.  \ifX@
  2565.  \else
  2566.   \ifCX@
  2567.    \ifr@\else\ifc@\else\hskip.5\FGD@\fi\fi
  2568.   \fi
  2569.   \ifRX@
  2570.    \ifr@\else\ifc@\else\hskip\FGD@\fi\fi
  2571.   \fi
  2572.  \fi}
  2573. \def\RRFG@@{%
  2574.  \ifX@
  2575.  \else
  2576.   \ifCX@
  2577.    \ifl@\else\ifc@\else\hskip.5\FGD@\fi\fi
  2578.   \fi
  2579.   \ifLX@
  2580.    \ifl@\else\ifc@\else\hskip\FGD@\fi\fi
  2581.   \fi
  2582.  \fi}
  2583. \def\XHL@{}
  2584. \def\vs@#1{\vskip#1\relax
  2585.  \dimen@=#1\relax\xdef\XHL@{\XHL@\the\RN@,\the\dimen@"}}
  2586. \def\vz@{\dimen@\FSH \advance\dimen@\FSD \vskip-\dimen@
  2587.  \xdef\XHL@{\XHL@\the\RN@,-\the\dimen@"}}
  2588. \def\vZ@{\noalign
  2589.  {\dimen@\PRDP@ \advance\dimen@\TRHT@
  2590.   \xdef\XHL@{\XHL@\the\RN@,-\the\dimen@"}\vskip-\dimen@}%
  2591.  \relax\vrule\depth\PRDP@\height\z@\width\z@\ignorespaces}
  2592. \def\cf@#1{\noalign{#1\xdef\TF@{\the\font}\TF@\MS@}}%
  2593. \def\hd@(#1#2;#3#4){\relax
  2594.  \if#1+%
  2595.   \dimen@#2\relax \advance\dimen@\HT@
  2596.  \else
  2597.   \dimen@#1#2\relax
  2598.  \fi
  2599.  \if#3+%
  2600.   \dimen@ii#4\relax \advance\dimen@ii\DP@
  2601.  \else
  2602.   \dimen@ii#3#4\fi
  2603.  \vrule\height\dimen@\depth\dimen@ii\width\z@}
  2604. \def\hl@{\xdef\XHL@{\XHL@\the\RN@,\HTW@"}}
  2605. \def\hL@#1{\dimen@#1\relax\xdef\XHL@{\XHL@\the\RN@,\the\dimen@"}}
  2606. \def\hls@{\noalign
  2607.  {\global\H@true
  2608.   \gdef\CLB@##1{\DH@}\gdef\CLBP@##1{\DH@}%
  2609.   \global\let\MLB@\DH@ \global\let\CMLB@\DH@
  2610.   \gdef\CCB@##1{\DH@}\gdef\CCBP@##1{\DH@}%
  2611.   \global\let\MCB@\DH@ \global\let\CMCB@\DH@
  2612.   \gdef\CRB@##1{\DH@}\gdef\CRBP@##1{\DH@}%
  2613.   \global\let\MRB@\DH@ \global\let\CMRB@\DH@
  2614.   \gdef\CPB@##1##2{\DH@}\gdef\DBB@##1{\DH@}\gdef\DLL@##1{\DH@}%
  2615.  }%
  2616. }
  2617. \def\PX@{\noalign
  2618.  {\global\let\CLB@\CLB@@ \global\let\CCB@\CCB@@ \global\let\CRB@\CRB@@
  2619.  \global\let\CLBP@\CLBP@@ \global\let\CCBP@\CCBP@@ \global\let\CRBP@\CRBP@@
  2620.  \global\let\MLB@\MLB@@ \global\let\MCB@\MCB@@ \global\let\MRB@\MRB@@
  2621.  \global\let\CMLB@\CMLB@@ \global\let\CMCB@\CMCB@@ \global\let\CMRB@\CMRB@@
  2622.  \global\let\CPB@\CPB@@ \global\let\DBB@\DBB@@ \global\let\DLL@\DLL@@
  2623.  }%
  2624. }
  2625. \let\HRH@\HTW@
  2626. \let\HRD@\z@
  2627. \let\LSG@\z@
  2628. \let\RSG@\z@
  2629. \let\LHG@\z@
  2630. \let\RHG@\z@
  2631. \def\DH@#1{\GLG@\GRG@\GSL@\GSR@
  2632.  \HP@{#1}%
  2633.  \HHDU@
  2634.  \hskip\LSG@
  2635.  \hskip\LHG@
  2636.  \leaders\hrule\height\HRH@\depth\HRD@\hfill
  2637.  \hskip\RHG@
  2638.  \hskip\RSG@
  2639.  \global\advance\CN@\@ne}
  2640. \def\HP@#1{\HP@@#1Y\HP@@}
  2641. \def\HP@@#1#2\HP@@{\if#1Y\let\HRH@\z@\else\HP@@@#1#2\HP@@@\fi}
  2642. \def\HP@@@#1#2Y\HP@@@{%
  2643.  \if#1+%
  2644.   \edef\LHG@{-\the\LG@}\edef\RHG@{-\the\RG@}%
  2645.  \else\if#1_%
  2646.    \global\NH@false\edef\LHG@{-\the\LG@}\edef\RHG@{-\the\RG@}%
  2647.    \dimen@=-\SL@ \EW@ \edef\LSG@{\the\dimen@}%
  2648.    \dimen@=-\SR@ \EW@ \edef\RSG@{\the\dimen@}%
  2649.  \else
  2650.   \HP@@@@#1#2:Y\HP@@@@
  2651.  \fi\fi}
  2652. \def\HP@@@@#1:#2#3\HP@@@@{\HP@@@@@#1;Y\HP@@@@@\if#2Y\else
  2653.  \HP@@@@@@#2#3\HP@@@@@@\fi}
  2654. \def\HP@@@@@#1#2;#3#4\HP@@@@@{\if#1*\else\def\HRH@{#1#2}\fi
  2655.  \if#3Y\else\HP@@@@@@@@#3#4\HP@@@@@@@@\fi}
  2656. \def\HP@@@@@@@@#1;Y\HP@@@@@@@@{\def\HRD@{#1}}
  2657. \def\HP@@@@@@#1#2:Y\HP@@@@@@{%
  2658.  \if#1+%
  2659.   \edef\LHG@{-\the\LG@}\edef\RHG@{-\the\RG@}%
  2660.  \else\if#1_%
  2661.   \global\NH@false\edef\LHG@{-\the\LG@}\edef\RHG@{-\the\RG@}%
  2662.   \dimen@=-\SL@ \EW@ \edef\LSG@{\the\dimen@}%
  2663.   \dimen@=-\SR@ \EW@ \edef\RSG@{\the\dimen@}%
  2664.  \else
  2665.   \HP@@@@@@@#1#2;Y\HP@@@@@@@
  2666.  \fi\fi}
  2667. \def\HP@@@@@@@#1;#2#3\HP@@@@@@@{\HP@@@@@@@@@#1YY\HP@@@@@@@@@
  2668.  \if#2Y\else\HP@@@@@@@@@@#2#3\HP@@@@@@@@@@\fi}
  2669. \def\HP@@@@@@@@@#1#2Y#3\HP@@@@@@@@@{%
  2670.  \if#1l%
  2671.   \dimen@=-\LG@
  2672.   \DN@{#2}\ifx\next@\empty\else\ifx\next@\space\else
  2673.    \advance\dimen@\next@\fi\fi
  2674.   \edef\LHG@{\the\dimen@}%
  2675.  \else\if#1L%
  2676.   \global\NH@false\edef\LHG@{-\the\LG@}%
  2677.   \dimen@=-\SL@ \EW@
  2678.   \DN@{#2}\ifx\next@\empty\else\ifx\next@\space
  2679.    \else\advance\dimen@\next@\fi\fi
  2680.   \edef\LSG@{\the\dimen@}%
  2681.  \else
  2682.   \HP@@@@@@@@@@@#1#2Y#3\HP@@@@@@@@@@@
  2683.  \fi\fi}
  2684. \def\HP@@@@@@@@@@@#1Y#2\HP@@@@@@@@@@@{\def\LHG@{#1}}
  2685. \def\HP@@@@@@@@@@#1#2;Y\HP@@@@@@@@@@{%
  2686.  \if#1r%
  2687.   \dimen@=-\RG@
  2688.   \DN@{#2}\ifx\next@\empty\else\ifx\next@\space\else
  2689.    \advance\dimen@\next@\fi\fi
  2690.   \edef\RHG@{\the\dimen@}%
  2691.  \else\if#1R%
  2692.   \global\NH@false\edef\RHG@{-\the\RG@}%
  2693.   \dimen@=-\SR@ \EW@
  2694.   \DN@{#2}\ifx\next@\empty\else\ifx\next@\space\else
  2695.    \advance\dimen@\next@\fi\fi
  2696.   \edef\RSG@{\the\dimen@}%
  2697.  \else
  2698.   \def\RHG@{#1#2}%
  2699.  \fi\fi}
  2700. \def\HHDU@{\ifdim\HRH@>\RHT@\global\RHT@\HRH@\fi
  2701.  \ifdim\HRD@>\RDP@\global\RDP@\HRD@\fi}
  2702. \def\GS@{\ifE@\else\ifH@\else\expandafter\GS@@\SS@\GS@@\fi\fi}
  2703. \def\TSS@{B}
  2704. \def\GS@@#1#2\GS@@{\gdef\TSS@{#1}\if T\LS@\gdef\SS@{#2T}\else
  2705.  \if M\LS@\gdef\SS@{#2M}\else\gdef\SS@{#2B}\fi\fi}
  2706. \newdimen\LG@
  2707. \newdimen\RG@
  2708. \def\GLG@{%
  2709.  \edef\next@{\def\noexpand\next@####1Z\the\CN@"####2Z####3\noexpand\next@
  2710.   {\global\noexpand\LG@\noexpand####2}%
  2711.   \noexpand\expandafter\noexpand\next@\LGL@ Z\the\CN@"\z@ Z\noexpand\next@}%
  2712.  \next@}
  2713. \def\GRG@{%
  2714.  \edef\next@{\def\noexpand\next@####1Z\the\CN@"####2Z####3\noexpand\next@
  2715.   {\global\noexpand\RG@\noexpand####2}%
  2716.   \noexpand\expandafter\noexpand\next@\RGL@ Z\the\CN@"\z@ Z\noexpand\next@}%
  2717.  \next@}
  2718. \newcount\SL@
  2719. \newcount\SR@
  2720. \def\GSL@{%
  2721.  \edef\next@{\def\noexpand\next@####1Z\the\CN@"####2Z####3\noexpand\next@
  2722.   {\global\noexpand\SL@####2}%
  2723.   \noexpand\expandafter\noexpand\next@\LSL@ Z\the\CN@"\z@ Z\noexpand\next@}%
  2724.  \next@}
  2725. \def\GSR@{%
  2726.  \edef\next@{\def\noexpand\next@####1Z\the\CN@"####2Z####3\noexpand\next@
  2727.   {\global\noexpand\SR@####2}%
  2728.   \noexpand\expandafter\noexpand\next@\RSL@ Z\the\CN@"\z@ Z\noexpand\next@}%
  2729.  \next@}
  2730. \newdimen\SLG@
  2731. \newcount\SSL@
  2732. \newdimen\SLLG@
  2733. \newcount\SSLL@
  2734. \def\ex@@#1{\noalign
  2735.  {\dimen@=#1\relax \xdef\XHL@{\XHL@\the\RN@,\the\dimen@"}\global\E@true}}
  2736. \def\PRX@#1{\noalign
  2737.  {\dimen@=#1\relax \xdef\XHL@{\XHL@\the\RN@,\the\dimen@"}\global\E@true}}
  2738. \def\NS@{\noalign{\global\let\FS@\relax}}
  2739. \def\NS@@{\noalign{\global\let\FS@\FS}}
  2740. \newdimen\XD@
  2741. \def\XXL@{}
  2742. \def\xx@#1{\GLG@\GSL@ \global\SSL@\SL@ \global\SLG@\LG@
  2743.  \advance\CN@#1\relax \advance\CN@\m@ne
  2744.  \GLG@\GSL@ \global\SLLG@\LG@ \global\SSLL@\SL@
  2745.  \mscount=#1\relax \multiply\mscount\tw@ \advance\mscount-\tw@
  2746.  \loop
  2747.  \ifnum\mscount>\@ne\sp@n\repeat
  2748.  \span
  2749.  {\mscount\CN@ \advance\mscount-#1\relax \advance\mscount\@ne
  2750.   \advance\CN@\m@ne
  2751.   \loop \xdef\XXL@{\XXL@"\the\mscount,\the\RN@}%
  2752.   \ifnum\mscount<\CN@\advance\mscount\@ne\repeat
  2753.  }%
  2754.  \FS@\ignorespaces}
  2755. {
  2756. \catcode`\|\active
  2757. \gdef\exa@(#1){\noalign
  2758.  {\dimen@#1\relax \xdef\XHL@{\XHL@\the\RN@,\the\dimen@"}%
  2759.   \count@\@ne \advance\CT@\m@ne
  2760.   \toks@{\omit\vrule\height#1\width\z@}%
  2761.   \loop \XX@
  2762.   \ifXX@
  2763.    \global\toks@=\expandafter{\the\toks@\T@B\omit\T@B\omit}%
  2764.   \else
  2765.    \global\toks@=\expandafter{\the\toks@\T@B Z{}{}\T@B\omit}%
  2766.   \fi
  2767.   \ifnum\count@<\CT@ \advance\count@\@ne \repeat
  2768.  \global\E@true
  2769.  }%
  2770.  \the\toks@\\}
  2771. \gdef\exb@(#1){\noalign
  2772.  {\dimen@#1\relax \xdef\XHL@{\XHL@\the\RN@,\the\dimen@"}%
  2773.   \count@\@ne \advance\CT@\m@ne \advance\RN@\m@ne
  2774.   \toks@{\omit\vrule\height#1\width\z@}%
  2775.   \loop \XX@
  2776.    \ifXX@
  2777.     \global\toks@=\expandafter{\the\toks@\T@B\omit\T@B\omit}%
  2778.    \else
  2779.     \global\toks@=\expandafter{\the\toks@\T@B Z{}{}\T@B\omit}%
  2780.    \fi
  2781.   \ifnum\count@<\CT@\advance\count@\@ne\repeat
  2782.  \global\E@true
  2783.  }%
  2784.  \the\toks@\\}
  2785. \gdef\hlyy@{\noalign
  2786.  {\global\H@true
  2787.   \gdef\CLB@##1{\DH@}\gdef\CLBP@##1{\DH@}%
  2788.   \global\let\MLB@\DH@\global\let\CMLB@\DH@
  2789.   \gdef\CCB@##1{\DH@}\gdef\CCBP@##1{\DH@}%
  2790.   \global\let\MCB@\DH@\global\let\CMCB@\DH@
  2791.   \gdef\CRB@##1{\DH@}\gdef\CRBP@##1{\DH@}%
  2792.   \global\let\MRB@\DH@\global\let\CMRB@\DH@
  2793.   \gdef\CPB@##1##2{\DH@}\global\let\DBB@\DH@ \global\let\DLL@\DH@
  2794.   \count@\@ne \X@
  2795.   \ifXX@ \global\toks@{}\else\global\toks@{_}\fi
  2796.   \count@\tw@
  2797.   \loop \X@
  2798.    \ifXX@
  2799.     \global\toks@=\expandafter{\the\toks@\T@B Z{}{}\T@B}%
  2800.    \else
  2801.     \global\toks@=\expandafter{\the\toks@\T@B Z{}{}\T@B_}%
  2802.    \fi
  2803.   \ifnum\count@<\CT@\advance\count@\@ne\repeat
  2804.  }%
  2805.  \the\toks@\cr\PX@}
  2806. \gdef\hLyy@(#1){\noalign
  2807.  {\global\H@true
  2808.   \gdef\CLB@##1{\DH@}\gdef\CLBP@##1{\DH@}%
  2809.   \global\let\MLB@\DH@\global\let\CMLB@\DH@
  2810.   \gdef\CCB@##1{\DH@}\gdef\CCBP@##1{\DH@}%
  2811.   \global\let\MCB@\DH@\global\let\CMCB@\DH@
  2812.   \gdef\CRB@##1{\DH@}\gdef\CRBP@##1{\DH@}%
  2813.   \global\let\MRB@\DH@\global\let\CMRB@\DH@
  2814.   \gdef\CPB@##1##2{\DH@}\global\let\DBB@\DH@\global\let\DLL@\DH@
  2815.   \count@\@ne \X@
  2816.   \ifXX@\global\toks@{}\else\global\toks@{#1:_}\fi
  2817.   \count@\tw@
  2818.   \loop \X@
  2819.   \ifXX@
  2820.    \global\toks@=\expandafter{\the\toks@\T@B Z{}{}\T@B}%
  2821.   \else
  2822.    \global\toks@=\expandafter{\the\toks@\T@B Z{}{}\T@B#1:_}%
  2823.   \fi
  2824.   \ifnum\count@<\CT@\advance\count@\@ne\repeat
  2825.   }%
  2826.  \the\toks@\cr\PX@}
  2827. }
  2828. \newif\ifXX@
  2829. \def\XXHL@{}
  2830. \def\yy@#1{\global\Y@true\global\YC@#1\relax
  2831.  {\mscount\RN@ \advance\mscount\@ne
  2832.   \advance\RN@#1\relax \advance\RN@\m@ne
  2833.   \loop\xdef\XXHL@{\XXHL@"\the\CN@,\the\mscount}\ifnum\mscount<\RN@
  2834.    \advance\mscount\@ne\repeat
  2835.  }%
  2836.  \ignorespaces}
  2837. \def\X@{\edef\next@{\def\noexpand\next@####1"\the\count@,\the\RN@"####2####3%
  2838.  \noexpand\next@{\noexpand\ifnum####2=\m@ne\noexpand\global\noexpand\XX@false
  2839.  \noexpand\else\noexpand\global\noexpand\XX@true\noexpand\fi}%
  2840.  \noexpand\expandafter\noexpand\next@\XXHL@"\the\count@,\the\RN@"\m@ne
  2841.  \noexpand\next@}\next@\relax}
  2842. \def\XX@{\edef\next@{\def\noexpand\next@####1"\the\count@,\the\RN@"####2####3%
  2843.  \noexpand\next@{\noexpand\ifnum####2=\m@ne\noexpand\global\noexpand\XX@false
  2844.  \noexpand\else\noexpand\global\noexpand\XX@true\noexpand\fi}%
  2845.  \noexpand\expandafter\noexpand\next@\XXL@"\the\count@,\the\RN@"\m@ne
  2846.  \noexpand\next@}\next@\relax}
  2847. \def\tdefine#1{\define@#1{}\tredefine#1}
  2848. \def\tredefine#1{\def\tdf@{#1}\catcode`\&\active\catcode`\|\active
  2849.  \catcode`\"\active\afterassignment\tdef@\def\tdf@@}
  2850. \def\tdef@{\expandafter\let\tdf@\tdf@@
  2851.  \catcode`\&=4 \catcode`\|=12 \catcode`\"=12 }
  2852. \def\colwidth(#1){\hskip#1\null}
  2853. \def\dotleads{\Leads{5pt}.}
  2854. \def\Leads#1#2{\leaders\hbox to#1{\hfil#2\hfil}\hfill\null}
  2855. \predefine\Polishl\l
  2856. \predefine\PolishL\L
  2857. \predefine\tieaccent\t
  2858. \predefine\barunder\b
  2859. \predefine\umlaut\"
  2860. \predefine\cedilla\c
  2861. \predefine\dotunder\d
  2862. \WT@\*
  2863. \WT@\cong
  2864. \WT@\longleftarrow
  2865. \WT@\longmapsto
  2866. \WT@\longrightarrow
  2867. \WT@\mathstrut
  2868. \WT@\notin
  2869. \WT@\overbrace
  2870. \WT@\overleftarrow
  2871. \WT@\overrightarrow
  2872. \WT@\overleftrightarrow
  2873. \WT@\rightleftharpoons
  2874. \WT@\underleftarrow
  2875. \WT@\underrightarrow
  2876. \WT@\underleftrightarrow
  2877. \WT@\rightleftharpoons
  2878. \WT@\underbrace
  2879. \WT@\copyright
  2880. \WT@\dots
  2881. \WT@\frenchspacing
  2882. \WT@\nonfrenchspacing
  2883. \WT@\medspace
  2884. \WT@\;
  2885. \WT@\negmedspace
  2886. \WT@\thickspace
  2887. \WT@\negthickspace
  2888. \WT@\slanted
  2889. \WT@\roman
  2890. \WT@\italic
  2891. \WT@\frak
  2892. \WT@\goth
  2893. \WT@\Bbb
  2894. \WT@\Hat
  2895. \WT@\oldnos
  2896. \WT@\pmb
  2897. \def\vphantom{\relax\v@true\h@false\ph@nt}
  2898. \def\hphantom{\relax\v@false\h@true\ph@nt}
  2899. \def\phantom{\relax\v@true\h@true\ph@nt}
  2900. \WT@\vphantom
  2901. \WT@\hphantom
  2902. \WT@\phantom
  2903. {\catcode`\'=\active \gdef'{\NX@\wit@prime}%
  2904.  \gdef\wit@prime{^\bgroup\prim@s}}
  2905. \WT@\text
  2906. \WT@\Cal
  2907. \WT@\bold
  2908. \WT@\iint
  2909. \WT@\iiint
  2910. \WT@\iiiint
  2911. \WT@\idotsint
  2912. \WT@\{
  2913. \WT@\}
  2914. \WT@\,
  2915. \WT@\!
  2916. \WT@\ldots
  2917. \WT@\cdots
  2918. \WT@\dotsm
  2919. \WT@\dotso
  2920. \WT@\dotsc
  2921. \WT@\Hat
  2922. \WT@\Check
  2923. \WT@\Tilde
  2924. \WT@\Acute
  2925. \WT@\Grave
  2926. \WT@\Dot
  2927. \WT@\Ddot
  2928. \WT@\Breve
  2929. \WT@\Bar
  2930. \WT@\Vec
  2931. \WT@\nolimits@
  2932. \def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
  2933.  \ch@ck#1#4#2\allocationnumber=\count1#1
  2934.  \global#3#5=\allocationnumber
  2935.  \wlog{\string#5=\string#2\the\allocationnumber}}
  2936. \catcode`\@=\active
  2937.  
  2938.